n00*_*00b 11 oracle plsql stored-procedures
我有一个PL/SQL存储过程,我想在其中运行多个更新,然后捕获任何异常并将它们返回到out参数中.为简单起见,在下面的代码块中,我只是将异常代码和错误消息输出到控制台.但是,下面的代码块不起作用(我遇到"发现/期待"语法错误)
CREATE OR REPLACE PROCEDURE DBP.TESTING_SP AS
DECLARE
v_code NUMBER;
v_errm VARCHAR2(64);
BEGIN
UPDATE PS_NE_PHONE_TBL SET NE_PHONE_TYPE = 'TEST' WHERE NEMPLID_TBL = 'N14924';
EXCEPTION
WHEN OTHERS THEN
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1, 64);
DBMS_OUTPUT.PUT_LINE (v_code || ' ' || v_errm);
END TESTING_SP;
/
Run Code Online (Sandbox Code Playgroud)
我正在尝试做什么的正确语法是什么?
我在一个论坛上看过
"当使用Create或Replace语法时,不能使用Declare.声明仅适用于未命名的匿名块.因此,要么删除第1行并创建匿名块,要么删除第2行并创建命名过程."
但我不确定如何创建一个匿名块或创建一个命名过程来完成我想要做的事情(如果那确实是'解决方案').有人能伸出援助之手吗?
只需删除DECLARE语句即可.
| 归档时间: |
|
| 查看次数: |
39778 次 |
| 最近记录: |