이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 41.9. 사설 토토 사이트 및 메시지버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

40.8. 젠 토토 및 메시지

다음을 사용하세요상승보고할 성명 메시지가 표시되고 젠 토토가 발생합니다.

올림 [ 레벨 ] '형식' [, 표현 [, ... ]] [사용 중옵션 = 표현 [, ... ] ];
인상 [ 레벨 ] 조건_이름 [사용 중옵션 = 표현 [, ... ] ];
인상 [ 레벨 ] SQLSTATE 'sqlstate' [사용 중옵션 = 표현 [, ... ] ];
인상 [ 레벨 ] 사용 중옵션 = 표현 [, ... ];
인상 ;

레벨옵션은 다음을 지정합니다. 오류 심각도. 허용되는 수준은 다음과 같습니다.디버그, 로그, 정보, 공지, 경고, 그리고예외, 와예외기본값입니다.예외오류가 발생합니다(일반적으로 오류가 발생하면 현재 거래); 다른 레벨은 다음의 메시지만 생성합니다. 우선순위 수준이 다릅니다. 특정 메시지 여부 우선순위는 클라이언트에 보고되거나 서버 로그에 기록됩니다. 둘 다에 의해 제어됩니다.log_min_messages그리고client_min_messages구성 변수. 참조범퍼카 토토 : 문서 : 9.3 : 서버 구성더 많은 정보를 원하시면.

이후레벨만약 있다면, 당신은 할 수 있습니다 를 쓰세요형식(반드시 표현식이 아닌 단순 문자열 리터럴). 형식 문자열 보고할 오류 메시지 텍스트를 지정합니다. 형식 문자열 삽입할 선택적 인수 표현식이 뒤에 올 수 있습니다. 메시지에. 형식 문자열 내부에서,%은 다음의 문자열 표현으로 대체됩니다. 다음 선택적 인수의 값입니다. 쓰기%%리터럴을 내보내다%.

이 예에서 값은v_job_id다음을 대체합니다%문자열에서:

'cs_create_job(%) 호출 중', v_job_id;

다음 방법으로 오류 보고서에 추가 정보를 첨부할 수 있습니다. 쓰기사용 중다음에 이어옵션 = 표현항목. 각각표현모든 문자열 값일 수 있습니다. 표현. 허용되는옵션키 단어는 다음과 같습니다:

메시지

오류 메시지 텍스트를 설정합니다. 이 옵션은 다음에서 사용할 수 없습니다. 의 형태상승형식을 포함함 이전 문자열사용 중.

세부정보

오류 상세 메시지를 제공합니다.

힌트

힌트 메시지를 제공합니다.

ERRCODE

보고할 오류 코드(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은 카테고리 코드이고 다음에 의해서만 트랩될 수 있기 때문입니다. 전체 카테고리를 트래핑합니다.