首页 > 解决方案 > PL/SQL 错误:ORA-00984 此处不允许列

问题描述

我正在编写一个用于循环的游标,以从表 A 中检索部分数据并将其插入到表 B 中。当我运行我的代码时,我收到此错误:

在此处输入图像描述

这是我正在使用的代码:

CREATE TABLE New_Movie (
    ID INTEGER NOT NULL,
    title VARCHAR2(100),
    yr NUMBER(4,0),
    score NUMBER,
    votes INTEGER,
    director VARCHAR2(100),
CONSTRAINT New_Movie_PK PRIMARY KEY (id));

DECLARE
    counter INTEGER;
    CURSOR c_movie IS
        SELECT ID, title, yr, score, votes, director
        from movie
        where votes >= 50000;
BEGIN
    counter := 0;
    for n_movie IN c_movie
    LOOP
    counter := counter+1;
    dbms_output.put_line(counter|| 'rows have been inserted');
    INSERT INTO New_Movie VALUES(id, title, yr, score, votes, director);
    END LOOP;
    EXECUTE IMMEDIATE 'COMMIT';
END;

标签: sqlplsqlerror-handling

解决方案


你能试试这个吗

INSERT INTO New_Movie 
VALUES(n_movie .id, 
  n_movie.title, 
  n_movie.yr, 
  n_movie.score, 
  n_movie.votes, 
  n_movie.director);

推荐阅读