programing

Oracle PL/SQL 생성 또는 교체 저장 프로시저에서 예외를 포착하여 반환(또는 인쇄)하는 방법

padding 2023. 8. 1. 20:20
반응형

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;
    /

내가 하려는 것에 대한 올바른 구문은 무엇입니까?

나는 한 포럼에서 읽습니다.

"작성 또는 바꾸기 구문을 사용할 때는 선언을 사용할 수 없습니다.선언은 이름이 지정되지 않은 익명 블록에만 적용됩니다.따라서 1행을 제거하고 익명 블록을 만들거나 2행을 제거하고 명명된 프로시저를 만듭니다."

하지만 원하는 작업을 수행하기 위해 익명 블록을 생성하거나 명명된 프로시저를 생성하는 방법을 잘 모르겠습니다(만약 그것이 '해결책'이라면).누가 좀 도와주시겠어요?

DELECT 문을 제거하기만 하면 됩니다.

언급URL : https://stackoverflow.com/questions/12327643/how-to-catch-and-return-or-print-an-exception-in-an-oracle-pl-sql-create-or-re

반응형