| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 이전 | Postgre메이저 토토 사이트 : 문서 : 9.3 : PL/PG메이저 토토 사이트 -메이저 토토 사이트 절차 언어 | 40장.PL/pgSQL - SQL절차적 언어 | 다음 | |
다음을 사용하세요상승보고할 성명 메시지가 표시되고 젠 토토가 발생합니다.
올림 [ 레벨 ] '형식' [, 표현 [, ... ]] [사용 중옵션 = 표현 [, ... ] ]; 인상 [ 레벨 ] 조건_이름 [사용 중옵션 = 표현 [, ... ] ]; 인상 [ 레벨 ] SQLSTATE 'sqlstate' [사용 중옵션 = 표현 [, ... ] ]; 인상 [ 레벨 ] 사용 중옵션 = 표현 [, ... ]; 인상 ;
그레벨옵션은 다음을 지정합니다. 오류 심각도. 허용되는 수준은 다음과 같습니다.디버그, 로그, 정보, 공지, 경고, 그리고예외, 와예외기본값입니다.예외오류가 발생합니다(일반적으로 오류가 발생하면 현재 거래); 다른 레벨은 다음의 메시지만 생성합니다. 우선순위 수준이 다릅니다. 특정 메시지 여부 우선순위는 클라이언트에 보고되거나 서버 로그에 기록됩니다. 둘 다에 의해 제어됩니다.log_min_messages그리고client_min_messages구성 변수. 참조범퍼카 토토 : 문서 : 9.3 : 서버 구성더 많은 정보를 원하시면.
이후레벨만약 있다면, 당신은 할 수 있습니다 를 쓰세요형식(반드시 표현식이 아닌 단순 문자열 리터럴). 형식 문자열 보고할 오류 메시지 텍스트를 지정합니다. 형식 문자열 삽입할 선택적 인수 표현식이 뒤에 올 수 있습니다. 메시지에. 형식 문자열 내부에서,%은 다음의 문자열 표현으로 대체됩니다. 다음 선택적 인수의 값입니다. 쓰기%%리터럴을 내보내다%.
이 예에서 값은v_job_id다음을 대체합니다%문자열에서:
'cs_create_job(%) 호출 중', v_job_id;
다음 방법으로 오류 보고서에 추가 정보를 첨부할 수 있습니다. 쓰기사용 중다음에 이어옵션 = 표현항목. 각각표현모든 문자열 값일 수 있습니다. 표현. 허용되는옵션키 단어는 다음과 같습니다:
오류 메시지 텍스트를 설정합니다. 이 옵션은 다음에서 사용할 수 없습니다. 의 형태상승형식을 포함함 이전 문자열사용 중.
오류 상세 메시지를 제공합니다.
힌트 메시지를 제공합니다.
보고할 오류 코드(SQLSTATE)를 지정합니다. 조건 이름(표시됨)부록 A또는 직접적으로 5자리 SQLSTATE 코드입니다.
관련 개체의 이름을 제공합니다.
이 예는 주어진 오류로 인해 거래를 중단합니다 메시지 및 힌트:
예외 발생 '존재하지 않는 ID -- %', user_id
힌트 사용 = '사용자 ID를 확인하세요';
이 두 가지 예는 SQL상태:
RAISE '중복된 사용자 ID: %', user_id USING ERRCODE = 'unique_violation'; RAISE '중복된 사용자 ID: %', user_id USING ERRCODE = '23505';
두 번째가 있습니다상승구문 주요 인수는 보고할 조건 이름 또는 SQLSTATE입니다. 예를 들면:
RAISE Division_by_zero; RAISE SQLSTATE '22012';
이 구문에서는,사용 중다음에 사용할 수 있습니다. 사용자 정의 오류 메시지, 세부 정보 또는 힌트를 제공합니다. 또 다른 방법 이전 예는 다음과 같습니다.
RAISE Unique_violation USING MESSAGE = '중복된 사용자 ID: ' || user_id;
또 다른 변형은 다음과 같습니다.상승 사용또는상승레벨사용 중그리고 다른 모든 것을사용 중목록.
의 마지막 변종올림없음 매개변수를 전혀 사용하지 마세요. 이 양식은 내부에서만 사용할 수 있습니다.시작블록의예외절; 현재 처리 중인 오류가 발생합니다. 다시 던졌습니다.
참고:이전PostgreSQL 9.1, 상승매개변수가 없었습니다. 오류를 포함하는 블록에서 오류를 다시 발생시키는 것으로 해석됩니다. 활성 예외 처리기. 따라서예외해당 핸들러 내에 중첩된 절은 잡지 못하더라도,상승다음에 있었습니다 중첩된예외절의 블록입니다. 이 오라클의 솔루션과 호환되지 않을 뿐만 아니라 놀라운 것으로 간주되었습니다. PL/SQL.
조건 이름이나 SQLSTATE가 a에 지정되지 않은 경우예외 발생명령, 기본값은 다음을 사용하는 것입니다.RAISE_EXCEPTION (P0001). 메시지 텍스트가 지정되지 않은 경우 기본값은 조건 이름이나 SQLSTATE를 메시지 텍스트로 사용하는 것입니다.
참고:SQLSTATE 코드로 오류 코드를 지정할 때, 미리 정의된 오류 코드로 제한되지 않고 원하는 오류 코드를 선택할 수 있습니다. 5자리 숫자 및/또는 대문자 ASCII로 구성된 오류 코드 문자( 이외)00000. 그것은 3으로 끝나는 오류 코드를 표시하지 않는 것이 좋습니다. 0은 카테고리 코드이고 다음에 의해서만 트랩될 수 있기 때문입니다. 전체 카테고리를 트래핑합니다.