반응형
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
반응형
'programing' 카테고리의 다른 글
SQL Server에서 동일한 두 열을 비교하려면 어떻게 해야 합니까? (0) | 2023.08.01 |
---|---|
E: 패키지 npm을 찾을 수 없습니다. (0) | 2023.08.01 |
Oracle에서 최대 절전 모드: CLOB 열에 문자열 속성 매핑 (0) | 2023.08.01 |
jQuery.scrollTop(); + 애니메이션 (0) | 2023.08.01 |
LINQ to SQL - 특정 열을 선택하고 강하게 입력된 목록을 반환하는 방법 (0) | 2023.08.01 |