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

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

41.9.1. 오류 및 메시지보고#

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

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

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

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

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

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

두 번째 및 세 번째 구문 변형에서조건 _nameandsqlstate각각 사설 토토 사이트 조건 이름 또는 5 자 Sqlstate 코드를 지정하십시오. 보다PostgreSQL : 문서 : 18 : 부록 A. PostgreSQL 토토 코드유효한 오류 조건 이름 및 사전 정의 된 SQLState 코드의 경우

다음은의 예입니다.조건 _nameandsqlstate사용법 :

Division_by_Zero Raise;
경고 제기 SQLSTATE '22012';

이러한 구문 변형 중 하나에서는 서면으로 오류 보고서에 추가 정보를 첨부 할 수 있습니다사용그 뒤에옵션=표현항목. 각표현모든 문자열 값 표현식 일 수 있습니다. 허용옵션키워드는 다음과 같습니다.

메시지 #

오류 메시지 텍스트를 설정합니다. 메시지가 이미 제공 되었으므로이 옵션은 첫 번째 구문 변형에서 사용할 수 없습니다.

세부 사항 #

오류 세부 정보를 제공합니다.

힌트 #

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

errcode #

in.PostgreSQL : 문서 : 18 : 부록 A. PostgreSQL 토토 코드또는 직접 5 자 SQLSTATE 코드로 직접. 오류 코드가 이미 제공 되었으므로이 옵션은 두 번째 또는 세 번째 구문 변형에서 사용할 수 없습니다.

컬럼
제약
DataType
테이블
스키마 #

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

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

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

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

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

같은 결과를 생성하는 또 다른 방법은 다음과 같습니다.

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는 일반 오류 조건을보고하는 것이 아니라 프로그램 버그를 감지하기위한 것입니다. 사용Raine위에서 설명한 진술.