41.9. 사설 토토 사이트 및 메시지#

41.9.1. 오류 및 메시지보고#

사용Rain메시지를보고하고 사설 토토 사이트를 제기하려는 진술.

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

the레벨옵션 오류 심각도를 지정합니다. 허용 레벨은디버그, log, info, 통지, 경고예외, with예외기본값예외오류가 발생합니다 (일반적으로 현재 트랜잭션을 중단). 다른 수준은 우선 순위가 다른 메시지 만 생성합니다. 특정 우선 순위의 메시지가 클라이언트에게보고되었는지, 서버 로그에 기록되었는지 또는 둘 다에 의해 제어되는지log_min_messagesandclient_min_messages구성 변수. 보다윈 토토 : 문서 : 17 : 19 장 서버 구성자세한 내용은

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

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

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

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

메시지 #

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

세부 사항 #

사설 토토 사이트 세부 정보를 제공합니다.

힌트 #

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

errcode #

조건 이름별로보고 할 오류 코드 (sqlstate)를 지정합니다.PostgreSQL : 문서 : 17 : 부록 A. PostgreSQL 토토 꽁 머니 코드


제약
DataType
테이블
스키마 #

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

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

예외를 제외하고 '존재하지 않는 ID- %', user_id
      hint = '사용자 ID를 확인하십시오';

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

'Duplicate User ID : %', ervercode를 사용하여 user_id = '고유 _violation';
'Duplicer ID : %', Errcode = '23505';를 사용하여 'Duplicer ID : %', user_id를 올립니다.

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

Division_by_Zero Raise;
SQLSTATE '22012';를 높이십시오.

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

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

여전히 또 다른 변형은 쓰는 것입니다사용또는Rain레벨사용그리고 다른 모든 것을 |사용List.

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

Note

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

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

note

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

41.9.2. 어설 션 확인#

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

Assert조건[ , 메시지 ];

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

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

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

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

정정 제출

올바른 문서에 아무것도 표시되면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면