44.8. PL/무지개 토토에서의 오류 처리

pl/무지개 토토 함수에서 또는 호출 된 무지개 토토 코드는 유효하지 않은 작업을 실행하거나 무지개 토토을 사용하여 오류를 생성하여 오류를 일으킬 수 있습니다.오류명령 또는 pl/무지개 토토 'selog명령. 이러한 오류는 TCL을 사용하여 TCL 내에서 잡힐 수 있습니다.캐치명령. 오류가 잡히지 않았지만 PL/TCL 기능의 최상위 수준으로 전파 할 수있는 경우 기능의 호출 쿼리에서 SQL 오류로보고됩니다..

반대로, PL/TCL 내에서 발생하는 SQL 오류SPI_EXEC, SPI_PREPARESPI_EXECP명령은 TCL 오류로보고되므로 TCL에 의해 잡을 수 있습니다캐치명령. (이러한 PL/TCL 명령 각각은 하위 트랜잭션에서 SQL 작업을 실행하여 오류로 롤백하여 부분적으로 완성 된 작업이 자동으로 정리됩니다.) 오류가 잡히지 않고 최상위 레벨로 전파되면 SQL 오류로 돌아갑니다..

무지개 토토 제공ErrorCodeTCL 프로그램이 쉽게 해석하기 쉬운 양식의 오류에 대한 추가 정보를 나타낼 수있는 변수. 내용은 TCL 목록 형식이며 첫 번째 단어는 오류를보고하는 서브 시스템 또는 라이브러리를 식별합니다.Postgres, 두 번째 단어는 PostgreSQL 버전 번호이며 추가 단어는 오류에 대한 자세한 정보를 제공하는 필드 이름/값 쌍입니다. 전지sqlstate, 조건메시지항상 제공됩니다 (처음 두 개는에 표시된대로 오류 코드 및 조건 이름을 나타냅니다.PostgreSQL : 문서 : 14 : 부록 A. PostgreSQL 토토 캔 코드). 존재할 수있는 필드는 다음과 같습니다.세부 사항, 힌트, Context, 스키마, 테이블, , DataType, 제약 조건, statement, cursor_position, filename, Linenofuncname.

PL/무지개 토토과 함께 일하는 편리한 방법ErrorCode정보는 필드 이름이 배열 첨자가되도록 배열에로드하는 것입니다. 그렇게하는 코드는

if [catch spi_exec $ sql_command]

(이중 콜론은 명시 적으로 명시합니다ErrorCode전역 변수입니다.)

정정 제출

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