pl/스포츠 토토 결과 함수 내에서 또는 호출 된 스포츠 토토 결과 코드는 유효하지 않은 작업을 실행하거나 스포츠 토토 결과을 사용하여 오류를 생성하여 오류를 일으킬 수 있습니다오류
명령 또는 pl/스포츠 토토 결과 'selog
명령. 이러한 오류는 TCL을 사용하여 TCL 내에서 잡힐 수 있습니다.캐치
명령. 오류가 잡히지 않았지만 PL/TCL 기능의 최상위 수준으로 전파 할 수있는 경우 기능의 호출 쿼리에서 SQL 오류로보고됩니다..
반대로, PL/TCL 내에서 발생하는 SQL 오류SPI_EXEC
, SPI_PREPARE
및SPI_EXECP
명령은 TCL 오류로보고되므로 TCL에 의해 잡을 수 있습니다캐치
명령. (이러한 PL/TCL 명령 각각은 하위 트랜잭션에서 SQL 작업을 실행하여 오류로 롤백되어 부분적으로 완성 된 작업이 자동으로 정리됩니다.) 오류가 잡히지 않고 최상위 레벨로 전파되면 SQL 오류로 돌아갑니다..
스포츠 토토 결과 제공ErrorCode
TCL 프로그램이 쉽게 해석하기 쉬운 양식의 오류에 대한 추가 정보를 나타낼 수있는 변수. 내용은 TCL 목록 형식이며 첫 번째 단어는 오류를보고하는 서브 시스템 또는 라이브러리를 식별합니다.Postgres
, 두 번째 단어는 PostgreSQL 버전 번호이며 추가 단어는 오류에 대한 자세한 정보를 제공하는 필드 이름/값 쌍입니다. 전지sqlstate
, 조건
및메시지
항상 제공됩니다 (첫 번째 두 개는에 표시된대로 오류 코드 및 조건 이름을 나타냅니다PostgreSQL : 문서 : 11 : 부록 A. PostgreSQL 토토 캔 코드). 존재할 수있는 필드는 다음과 같습니다.세부 사항
, 힌트
, Context
, 스키마
, 테이블
, 열
, DataType
, 제약 조건
, 성명서
, cursor_position
, filename
, Lineno
및funcName
.
PL/스포츠 토토 결과과 함께 일하는 편리한 방법ErrorCode
정보는 필드 이름이 배열 첨자가되도록 배열에로드하는 것입니다. 그렇게하는 코드는
if [catch spi_exec $ sql_command]
(이중 콜론은 명시 적으로 명시합니다ErrorCode
는 글로벌 변수입니다.)