1

我正在尝试将一系列数字插入数据库。这是我的代码,但它不起作用:

DECLARE 
  j number(10) ;
BEGIN
  FOR j IN 1001020930..1001021930
  LOOP
    INSERT INTO PROD.issue_id(j,'NEW',null)
  END LOOP;
END;

表结构:

VARCHAR2 (128 BYTE)
VARCHAR2 (10 BYTE)
DATE

这是错误代码:

Error starting at line 1 in command:
DECLARE 
  j number(10) ;
BEGIN
  FOR j IN 1001020930..1001021930
  LOOP
    INSERT INTO PROD.issue_id(j,'NEW',null)
  END LOOP;
END;
Error report:
ORA-06550: line 6, column 42:
PL/SQL: ORA-01747: invalid user.table.column, table.column, or column specification
ORA-06550: line 6, column 5:
PL/SQL: SQL Statement ignored
ORA-06550: line 8, column 4:
PLS-00103: Encountered the symbol ";" when expecting one of the following:

   loop
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

我不明白这些错误,因为我对 PL/SQL 很陌生

4

1 回答 1

3

您在插入语句中错过了values命令,并且没有用分号终止插入语句。

照做

    DECLARE
    j    NUMBER (10);
BEGIN
    FOR j IN 1001020930 .. 1001021930
    LOOP
        INSERT INTO   issue_id
              VALUES   (j, 'NEW', SYSDATE);
    END LOOP;
END;
于 2013-06-17T10:24:49.127 回答