43.9.토토 캔 및 메시지

43.9.1.오류 및 메시지보고

사용Rain메시지를보고하고 토토 캔를 제기하려는 명령문.

높이 [ 레벨 ] '형식' [,표현[, ... ]] [사용옵션=표현[, ... ]]; 레벨 ]조건 _name[사용옵션=표현[, ... ]]; 레벨 ] sqlstate 'sqlstate' [사용옵션=표현[, ... ]]; 레벨 ] 사용옵션=표현[, ... ];

the레벨옵션 오류 심각도를 지정합니다. 허용 레벨은디버그,log,info,통지,경고예외, with예외기본값 인예외오류가 발생합니다 (일반적으로 현재 거래를 중단). 다른 수준은 우선 순위가 다른 메시지 만 생성합니다.log_min_messagesandclient_min_messages구성 변수. 보다범퍼카 토토 : 문서 : 15 : CHAPTER 20. 서버 구성자세한 내용은

이후레벨있으면 A를 지정할 수 있습니다.형식String (표현이 아닌 간단한 문자열 문자 여야합니다). 형식 문자열은보고 할 오류 메시지 텍스트를 지정합니다.%는 다음 선택적 인수 값의 문자열 표현으로 대체됩니다. 쓰다%%문자를 방출하려면%. 인수 수는 수와 일치해야합니다.%형식 문자열의 자리 표시 자나 함수를 편집하는 동안 오류가 발생합니다.

이 예에서V_JOB_ID대체%문자열에서 :

통지 상승 'CS_CREATE_JOB (%) 호출', V_JOB_ID;

서면으로 토토 캔 보고서에 추가 정보를 첨부 할 수 있습니다사용그 뒤에옵션=표현항목. 각표현모든 문자열 값 표현식 일 수 있습니다. 허용옵션키워드는 다음과 같습니다.

메시지

오류 메시지 텍스트를 설정합니다. 이 옵션은 형식으로 사용할 수 없습니다.Rain이전에 형식 문자열을 포함하는사용.

세부 사항

토토 캔 세부 정보를 제공합니다.

힌트

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

errcode

조건 이름별로보고 할 오류 코드 (sqlstate)를 지정합니다.스포츠 토토 결과 : 문서 : 15 : 부록 A. 스포츠 토토 결과 스포츠 토토 결과 코드

컬럼
제약 조건
DataType
테이블
스키마

관련 객체의 이름을 제공합니다.

이 예제는 주어진 오류 메시지 및 힌트로 트랜잭션을 중단합니다 :

예외를 제외하고 '존재하지 않는 ID- %', user_id

이 두 예제는 sqlstate를 설정하는 동등한 방법을 보여줍니다 :

'Duplicate User ID : %', erus_id를 사용하여 Errcode = '고유 _violation';

두 번째가 있습니다Rain기본 인수가보고 할 조건 이름 또는 sqlstate 인 구문.

Division_by_Zero Raise;

이 구문에서사용사용자 정의 오류 메시지, 세부 사항 또는 힌트를 제공하는 데 사용할 수 있습니다. 이전 예제를 수행하는 또 다른 방법은입니다.

Message = 'Duplicate User ID :'|| user_id;

또 다른 변형은 쓰는 것입니다사용또는Rain레벨사용그리고 다른 모든 것을에 넣습니다.사용목록.

마지막 변형Rain매개 변수가 전혀 없습니다. 이 양식은 A 내에서만 사용할 수 있습니다.시작블록예외절; 현재 처리중인 오류가 다시 열렸습니다.

note

PostgreSQL 9.1, Raine매개 변수가없는 것은 활성 예외 핸들러를 포함하는 블록에서 오류를 다시 제외하는 것으로 해석되었습니다. 따라서예외해당 핸들러 안에 중첩 된 조항은이더라도 그것을 잡을 수 없었습니다.Rain중첩 내에 있었다예외조항 블록. 이것은 Oracle의 PL/SQL과 양립 할 수없는 놀라운 것으로 간주되었습니다.

조건 이름이나 sqlstate가 a에 지정되지 않은 경우예외 제기명령, 기본값은 사용하는 것입니다rase_exception(P0001). 메시지 텍스트가 지정되지 않은 경우 기본값은 조건 이름 또는 sqlstate를 메시지 텍스트로 사용하는 것입니다.

Note

SQLSTATE 코드별로 오류 코드를 지정할 때 사전 정의 된 오류 코드에만 국한되지 않지만 5 자리 및/또는 상단 CASE ASCII 문자로 구성된 오류 코드를 선택할 수 있습니다.00000. 카테고리 코드이며 전체 카테고리를 포획 하여만 갇힐 수 있기 때문에 3 개의 0으로 끝나는 토토 캔 코드를 던지는 것을 피하는 것이 좋습니다..

43.9.2.어설 션 확인

theAssert명령문은 디버깅 체크를 삽입하기위한 편리한 속기입니다pl/pgsql기능.

Assert조건[,메시지 ];

the조건항상 진실로 평가할 것으로 예상되는 부울 표현입니다. 그렇다면Assert성명서는 더 이상 아무것도하지 않습니다. 결과가 False 또는 Null이면assert_failure예외가 제기됩니다. (평가 중에 오류가 발생하는 경우조건, 정상 토토 캔로보고됩니다.)

선택 사항 인 경우메시지제공됩니다. 결과 (null이 아닌 경우)의 결과 (기본 오류 메시지 텍스트를 대체하는) 표현식입니다.어설 션 실패,조건실패. 그만큼메시지어설 션이 성공하는 정상적인 경우에는 표현이 평가되지 않습니다.

구성 매개 변수를 통해 어설 션 테스트를 활성화 또는 비활성화 할 수 있습니다plpgsql.check_asserts, 부울 가치를 취합니다. 기본값은on. 이 매개 변수 인 경우OFFtheAssert진술은 아무것도하지 않습니다.

참고Assert는 일반 오류 조건을보고하는 것이 아니라 프로그램 버그를 감지하기위한 것입니다. 사용Rain위에서 설명한 진술.

정정 제출

문서에 올바른 것이 없으면 일치하지 않습니다.이 양식문서 문제를보고하려면