Подтвердить что ты не робот

Как поймать и вернуть (или распечатать) исключение в ORACLE PL/SQL создать или заменить хранимую процедуру

У меня есть хранимая процедура 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;
    /

Каков правильный синтаксис для того, что я пытаюсь сделать?

Я читаю на одном форуме

"При использовании синтаксиса Create или Replace вы не можете использовать Declare. Declare - это только для анонимных блоков, которые не имеют имени. Поэтому либо удалите строку 1, либо создайте анонимный блок, либо удалите строку 2 и создайте именованную процедуру."

но я не уверен, как создать анонимный блок или создать именованную процедуру для выполнения того, что я хочу сделать (если это действительно "решение" ). Может кто-нибудь протянуть руку?

4b9b3361

Ответ 1

Просто удалите оператор DECLARE.