【发布时间】:2018-12-23 18:18:21
【问题描述】:
我为插入语句创建了一个存储过程:
CREATE OR REPLACE PROCEDURE TEST_INSERT
IS /* **WHEN TO USE IS AND AS** */
BEGIN
declare row_cnt number(30):=0;
INSERT INTO TABLE_1
SELECT * FROM TABLE_C;
/* process log I created like this */
BEGIN
dbms_output.put_line ('process begins : ' || to_char(SYSDATE, 'hh24:mi:ss'));
TotalUpd := SQL%ROWCOUNT;
UPDATE table2 SET status = 'PROGRESS',row_cnt = TotalUpd WHERE status is null;
dbms_output.put_line('Total Records Updated. : ' || TotalUpd);
COMMIT;
end;
COMMIT;
END;
如何执行这个存储过程?我试过这样:
Begin
EXEC TEST_INSERT;
end;
当期待以下其中一项时,它给了我 PLS-00103 错误: := 。 (@%;
带有insert语句的存储过程如何执行,在作业调度器中如何调用这个存储过程?
【问题讨论】:
-
不是您的主要问题,而是:What is the difference between “AS” and “IS” in an Oracle stored procedure?。你的程序有几个语法错误,所以你真的在问如何调用它,或者如何修复它?
-
如何修复并调用它??
-
FWIW,我倾向于在直接创建包、过程和函数时使用“AS”,在包内创建函数和过程时使用“IS”,因为这对我来说在语法上有意义;即“create
is ”没有语言意义,但“ as ”可以。同样,“ is ”比“ as ”更有意义。 YMMV。
标签: oracle11g