Plsql ORA-00905:SQL PLus中缺少关键字

Plsql ORA-00905:SQL PLus中缺少关键字,plsql,sqlplus,Plsql,Sqlplus,使用SQLPLUS命令行在以下过程中运行时,出现ORA-00905:缺少关键字错误。奇怪的是,当我通过PL/SQL developer中的SQL窗口运行它时,它会编译并工作,不幸的是,我也需要它通过命令行工作: CREATE OR REPLACE PROCEDURE PRO_INSERT_ALERT_END_DATE IS CURSOR cur_InsertEndDate IS SELECT cli_per_id, date_ended,

使用SQLPLUS命令行在以下过程中运行时,出现ORA-00905:缺少关键字错误。奇怪的是,当我通过PL/SQL developer中的SQL窗口运行它时,它会编译并工作,不幸的是,我也需要它通过命令行工作:

CREATE OR REPLACE PROCEDURE PRO_INSERT_ALERT_END_DATE IS



CURSOR cur_InsertEndDate IS

    SELECT cli_per_id,
           date_ended,
           date_started,
           alertid
    FROM   CP_END_ALERT;

BEGIN



FOR rec_cur_InsertEndDate IN cur_InsertEndDate
LOOP

    BEGIN

        UPDATE vwe_alert_table
        SET    alert_inactive_on = rec_cur_InsertEndDate.date_ended,
               alert_inac_reason = 'Deregistered'
        WHERE  vwe_alert_table.art_id = rec_cur_InsertEndDate.alertid AND
               vwe_alert_table.art_per_id = rec_cur_InsertEndDate.cli_per_id AND
               vwe_alert_table.art_alerted_on = rec_cur_InsertEndDate.date_started AND
               vwe_alert_table.art_alert = 'AL02';


        COMMIT;

    EXCEPTION
        WHEN OTHERS THEN

            dbms_output.put_line('Error updating record ' || SUBSTR(SQLERRM, 1, 250));
            ROLLBACK;

    END;
   END LOOP;
END PRO_INSERT_ALERT_END_DATE;

任何建议都是最受欢迎的

< P>这可能是因为脚本中的空行。告诉SqlPlus忽略它们

 set sqlblanklines on

该过程无效,并且不会在任何地方编译,因为您有一个额外的
结尾
结束循环之前如果删除它,它是否有效?如果不是,它抱怨的是哪一行?额外的结尾是我的一个错误,我已经删除了它,仍然得到相同的ORA-00905:第1行缺少关键字错误,非常感谢您查看此btw。要清楚,这是显示在创建行上的错误(它应该在错误位置显示*号)?(您可以在此处粘贴确切的输出,而不是过程定义)。您放在这里的创建或替换行是可以的。例如,如果你拼错了REPLACE,我会在
CREATE或REPLACE
上看到这个错误。例如
CREATE或REPACE PRO\u INSERT\u ALERT\u END\u DATE是*第1行的错误:ORA-00905:缺少关键字
可能不是很有启发性,但这是我得到的输出:*第1行的错误:ORA-00933:SQL命令没有正确结束