在oracle程序中期待下列之一时遇到符号

时间:2017-12-06 13:21:08

标签: oracle stored-procedures plsql

我有以下程序,我收到'PLS-00103: Encountered the symbol "." when expecting one of the following:;'错误。在commit语句之后的行发生此错误。

我对编写程序很陌生,所以我并不真正了解问题出在哪里。使用select查询的插入中可能存在问题,因为我正在从光标输出数据,而且我正在使用选择查询。

CREATE OR REPLACE PROCEDURE TEST 
IS
TST VARCHAR2(4000):= NULL;
IN_SEQ_NO NUMBER;

CURSOR C_DB IS
 SELECT NAME, ID
    from REC_PROC;

BEGIN

select IDH_SEQ.nextval INTO IN_SEQ_NO from dual;   

COMMIT;

END LOOP;

END TEST;

1 个答案:

答案 0 :(得分:1)

向您的程序添加FOR rec IN C_DB LOOP指令:

CREATE OR REPLACE PROCEDURE TEST 
IS
    TST       VARCHAR2(4000):= NULL;
    IN_SEQ_NO NUMBER;

    CURSOR C_DB IS
    SELECT NAME,
           ID
      FROM REC_PROC;

BEGIN
    FOR rec IN C_DB
    LOOP
        SELECT IDH_SEQ.nextval INTO IN_SEQ_NO from dual;   
        COMMIT;
    END LOOP;
END TEST;

或删除END LOOP;

CREATE OR REPLACE PROCEDURE TEST 
IS
    TST       VARCHAR2(4000):= NULL;
    IN_SEQ_NO NUMBER;

    CURSOR C_DB IS
    SELECT NAME,
           ID
      FROM REC_PROC;

BEGIN
    SELECT IDH_SEQ.nextval INTO IN_SEQ_NO from dual;   
    COMMIT;
END TEST;