Plsql ORA-00905:SQL PLus中缺少关键字
使用SQLPLUS命令行在以下过程中运行时,出现ORA-00905:缺少关键字错误。奇怪的是,当我通过PL/SQL developer中的SQL窗口运行它时,它会编译并工作,不幸的是,我也需要它通过命令行工作: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,
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命令没有正确结束