【发布时间】:2020-04-13 05:12:44
【问题描述】:
我正在编写一个用于循环的游标,以从表 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;
【问题讨论】:
-
尝试在 INSERT 中使用
VALUES(n_movie.ID,n_movie.title,... -
顺便说一句,作为最佳实践,每个
insert语句都应包含列列表。 PL/SQL 也有自己的commit语句,所以你不需要动态 SQL。
标签: sql plsql error-handling