DB2 SQL 반환 코드
DB2 SQL return codesSQL Return Code는 IBM Db2 프로그램의 SQL 호출로 인한 프로그래밍 장애 진단에 일상적으로 사용된다.IBM Db2 프로그램의 중요한 특징은 오류 처리다.SQL Return Code를 포함하는 오류 진단은 Db2 SQLCA 블록 내의 SQLCODE 필드에서 이루어진다.
SQLCODE는 더 이상 SQL 표준의 일부가 아니다.SQL 표준은 SQLCODE를 보다 상세한 SQLSTATE로 대체했다.
SQLCA
SQL 통신 영역(SQLCA) 구조는 IBM Db2 프로그램 내에서 애플리케이션 프로그램에 피드백을 반환하기 위해 사용된다.
SQLCODE
SQLCODE 필드에는 SQL 반환 코드가 포함되어 있다.코드는 0, 음 또는 양일 수 있다.
- 0은 실행이 성공적이었음을 의미한다.
- 음수 값은 오류와 함께 실행이 실패했음을 나타낸다.
예를 들어 -911은 롤백과 함께 시간 초과가 발생했음을 의미한다. - 양의 값은 경고와 함께 성공적인 실행을 의미한다.
예를 들어 일치하는 행이 없거나 커서가 테이블 끝에 도달했음을 의미하는 +100이 그 예다.
다음은 DB2용 SQLCODE의 보다 포괄적인 목록이다.이 목록은 완전하지 않다는 점에 유의하십시오.또한 일부 SQLCODE는 특정 DB2 제품(예: Db2 z/OS에서만, Db2 LUW에서만 또는 IBM i용 Db2에서만 발생할 수 있다.
제로(성공)
0 성공
음수 값(오류)
| -007 | 지정한 '문자'는 SQL 문에 유효한 문자가 아니다. |
| -010 | 문자열로 시작하는 문자열 상수가 올바르게 종료되지 않음. |
| -029 | INT 조항 필요. |
| -060 | 잘못된 유형 사양: 사양 |
| -084 | 허용되지 않는 SQL 문. |
| -101 | 그 진술은 너무 길거나 너무 복잡하다. |
| -102 | 끈 상수가 너무 길다. |
| -103 | 끈 상수가 너무 길다.맥스는 128자 입니다. |
| -104 | SQL 문에 잘못된 기호가 발견됨 |
| -105 | 끈 상수가 너무 길다. |
| -117 | INSERT의 값 수가 열 수와 일치하지 않는다. |
| -119 | GROUP BY 또는 HAVING 절의 오류. |
| -122 | 선택 목록의 열 또는 식이 잘못됨 |
| -156 | 키워드 근처의 구문이 잘못됨. |
| -180 | 날짜/시간/시간 스탬프의 잘못된 데이터. |
| -181 | 날짜/시간/시간 스탬프의 잘못된 데이터. |
| -188 | 설명 문의 호스트 변수는 이름에 대한 올바른 문자열 표현이 아니다. |
| -199 | 지정한 키워드의 잘못된 사용. |
| -203 | 기둥-이름 참조가 모호함 |
| -204 | DB2에 정의되지 않은 개체. |
| -205 | 열 이름이 테이블에 없음 |
| -206 | SELECT의 어떤 테이블에도 열이 존재하지 않는다. |
| -207 | 잘못된 열 이름. |
| -208 | 열-이름이 결과 테이블의 일부가 아니므로 조항별 주문이 잘못됨 |
| -209 | 모호한 열 이름 |
| -216 | SELECT에서 비교 양쪽의 식 수가 같지 않음. |
| -224 | FETCH는 무감각 커서를 민감하게 만들 수 없다. |
| -229 | SET LOCALE 문에 지정된 로케일을 찾을 수 없음. |
| -257 | 데이터 형식의 암묵적 변환은 허용되지 않는다. |
| -289 | 테이블스페이스에 DB2 공간이 부족함 |
| -302 | 입력 변수 또는 매개변수 번호 위치 번호의 값이 잘못되었거나 목표 열 또는 목표 값에 비해 너무 큼 |
| -303 | 데이터 유형이 비교할 수 없기 때문에 값을 출력 호스트 변수 위치 번호에 할당할 수 없음 |
| -305 | Null 표시기 필요. |
| -310 | 십진수 값이 null임 |
| -311 | Varchar, 삽입 또는 업데이트. -LEN 필드가 올바른 데이터 길이를 설정하지 않음. |
| -313 | 지정된 호스트 변수 수가 매개 변수 마커 수와 같지 않음. |
| -401 | 작업 피연산자의 데이터 형식은 호환되지 않는다. |
| -404 | 지정한 SQL 문에 너무 긴 문자열이 들어 있다. |
| -407 | 업데이트, 삽입 또는 설정 값이 null이지만 개체 열 이름 열에는 null 값을 포함할 수 없음 |
| -408 | 값은 할당 대상의 데이터 유형과 호환되지 않는다.대상 이름은 "<name" 입니다.(****OBs: Para alguns casos o CAST resolve ) |
| -413 | 숫자 데이터 유형 변환 중에 오버플로가 발생함 |
| -414 | 첫 번째 피연산자가 문자열이 아니기 때문에 이와 유사한 술어는 무효다. |
| -415 | 설정된 연산자의 피연산자의 해당 열(열 번호)은 호환되지 않는다. |
| -418 | 매개 변수 마커를 사용할 수 없음. |
| -420 | 문자열 인수 값이 'function-name' 함수에 허용되지 않음 |
| -421 | 조합 또는 조합의 피연산자 모두 동일한 수의 열을 가지지 여부 |
| -433 | 데이터가 너무 크다 |
| -438 | 진단 텍스트와 함께 응용 프로그램 상승 오류: 텍스트 |
| -440 | &1 in &2 in > 루틴을 지정된 매개 변수로 찾을 수 없음지정된 이름과 호환 가능한 인수를 가진 함수 또는 프로시저를 찾을 수 없음.[1] |
| -482 | 그 절차는 로케이터를 반환하지 않았다. |
| -501 | FETCH에서 커서가 열리지 않음. |
| -502 | 이미 열려 있는 커서 열기 |
| -503 | 열 업데이트 지정이 필요하다. |
| -504 | 커서 이름이 선언되지 않음 |
| -510 | Update(업데이트) 또는 Delete(삭제) 문의 커서로 지정된 테이블은 수정할 수 없다. |
| -530 | 참조 무결성 때문에 INSERT/UPDATE가 차단 |
| -532 | 참조 무결성(DELETE RESTRICTED 규칙)이 DELETE를 차단함. |
| -536 | 참조 무결성(DELETE RESTRICTED 규칙)이 DELETE를 차단함. |
| -545 | INSERT/UPDATE를 방지하는 제약 조건을 확인하십시오. |
| -551 | 인증 실패. |
| -554 | 권한 부여 ID 또는 역할은 자신에게 권한을 부여할 수 없다. |
| -601 | 이미 존재하는 개체를 생성하려고 시도했음 |
| -602 | 작성 인덱스에 지정된 열이 너무 많음 |
| -603 | 테이블이 식별된 열 및 기간의 값에 대해 중복되는 행을 포함하므로 고유한 인덱스를 만들 수 없음 |
| -604 | 데이터 유형 정의에서 잘못된 길이, 정밀도 또는 척도 속성을 지정함 |
| -607 | 이 개체에 대한 작업 또는 옵션 작업이 정의되지 않음 |
| -610 | 경고: 객체에 대한 생성/확인이 보류 중인 객체에 객체를 배치함 |
| -611 | 테이블스페이스의 잠금 크기가 테이블스페이스 또는 테이블인 경우 lockmax 0만 지정할 수 있다. |
| -612 | 식별자는 중복된 이름이다. |
| -613 | 기본 키, 해시 키 또는 고유한 제약 조건이 너무 길거나 열과 주기가 너무 많음 |
| -614 | 색인을 만들거나 변경할 수 없거나, 색인에 대한 열의 내부 길이의 합계가 허용 가능한 최대값보다 크기 때문에 열의 길이를 변경할 수 없음 |
| -615 | 사용 중인 패키지에서는 작업 유형이 허용되지 않음 |
| -616 | obj-type1 obj-name1은 obj-type2 obj-name2에서 참조되므로 삭제할 수 없음 |
| -617 | 유형 1 인덱스가 테이블에 유효하지 않음 |
| -618 | 시스템 데이터베이스에서 작업이 허용되지 않음 |
| -619 | 데이터베이스가 중지되지 않았기 때문에 작업이 허용되지 않음 |
| -620 | 데이터베이스 유형 데이터베이스의 공간 유형 공간에는 stmt 유형 문의 키워드가 허용되지 않음 |
| -621 | 중복 dbid dbid가 탐지되어 이전에 데이터베이스 이름에 할당됨 |
| -622 | 혼합 데이터 설치 옵션이 no이므로 혼합 데이터가 유효하지 않은 경우 |
| -623 | 클러스터가 테이블 이름에 유효하지 않음 |
| -624 | 테이블 이름 테이블에는 이미 기본 키 또는 지정된 열과 마침표를 가진 고유한 제약 조건이 있음 |
| -625 | 테이블 이름에 기본 키 또는 고유 키의 고유성을 적용하기 위한 인덱스가 없음 |
| -625 | 경고: 테이블의 정의가 불완전하게 변경됨 |
| -626 | 페이지 세트가 중지되지 않았기 때문에 변경 문은 실행 가능하지 않다. |
| -627 | 테이블 공간 또는 인덱스에 사용자 관리 데이터 세트가 있기 때문에 변경 문이 잘못됨 |
| -628 | 그 조항들은 상호 배타적이다. |
| -629 | 외부 키 이름에 null 값을 포함할 수 없으므로 set null을 지정할 수 없음 |
| -630 | 오류: WHERE NOT NULL 규격이 유형 1 인덱스에 대해 잘못됨 |
| -631 | 외부 키 이름이 너무 길거나 열이 너무 많음 |
| -632 | DELETE 규칙 제한으로 인해 테이블을 테이블 이름의 종속 항목으로 정의할 수 없음 |
| -633 | DELETE 규칙은 DELETE 규칙이어야 함 |
| -634 | DELETE 규칙은 계단식이어서는 안 된다. |
| -635 | DELETE 규칙은 다를 수 없거나 null로 설정할 수 없음 |
| -636 | 파티션 부품 번호에 대해 지정된 범위가 잘못됨 |
| -637 | 키워드 이름 키워드 또는 절 복제 |
| -638 | 열 정의가 없으므로 테이블 이름을 만들 수 없음 |
| -639 | DELETE 규칙이 null로 설정된 외부 키의 null 가능 열은 분할된 인덱스의 키 열일 수 없음 |
| -640 | 이 테이블스페이스의 테이블에 유형 1 인덱스가 있기 때문에 잠금 크기 조정 행을 지정할 수 없음 |
| -642 | 고유한 제약 조건의 너무 많은 열 |
| -643 | 체크 제약 조건 또는 인덱스 열의 식 값이 최대 허용 길이 키 식을 초과함 |
| -644 | 문 stmt-type에서 키워드 또는 절 키워드에 대해 잘못된 값이 지정됨 |
| -645 | 인덱스 키에 NULL 값을 포함할 수 없으므로 WHERE NOT NULL이 무시됨 |
| -646 | 테이블 이름에 테이블이 이미 포함되어 있으므로 테이블 이름을 지정된 테이블 공간 테이블 공간 이름에 만들 수 없음 |
| -647 | 암시적 또는 명시적 테이블스페이스 또는 인덱스 스페이스 이름에 대한 버퍼풀 bp-name이(가) 활성화되지 않음 |
| -650 | 변경 진술을 실행할 수 없음, 이유 코드 저작권 2014 TheAmericanProgrammer.com 무단 복사가 금지됨 |
| -651 | 테이블 설명이 개체 설명자의 최대 크기를 초과한다. |
| -652 | 설치 정의 편집 또는 유효성 검사 절차 pro-name 위반 |
| -653 | 분할된 테이블 공간의 테이블 이름 tspace-name은 분할된 인덱스가 생성되지 않았으므로 사용할 수 없음 |
| -655 | 저장소 그룹에 특정 볼륨 ID와 비특정 볼륨 ID가 모두 있을 수 있으므로 stogroup 생성 또는 변경은 유효하지 않음 |
| -658 | 문구를 사용하여 객체 유형을 삭제할 수 없음 |
| -660 | 키 제한이 지정되지 않았으므로 분할된 테이블 공간 tspace-name에 인덱스 이름을 만들거나 변경할 수 없음 |
| -661 | 파티션 규격 수가 테이블 공간의 파티션 수와 같지 않기 때문에 분할된 테이블 공간 tspace-name에 개체 유형 개체 이름을 만들 수 없음 |
| -662 | 분할된 인덱스는 테이블 공간에 만들 수 없거나 테이블 공간은 인덱스를 제어할 수 없음. 테이블 공간 tspace-name, 이유 코드 |
| -663 | 키 제한 값 수가 0이거나 인덱스 이름 키의 열 수보다 큼 |
| -664 | 분할된 인덱스에 대한 제한 키 필드의 내부 길이가 인덱스 관리자가 지정한 길이를 초과함 |
| -665 | 변경문의 파티션 절이 생략되었거나 잘못됨 |
| -666 | 함수가 진행 중이기 때문에 stmt-properties 객체를 실행할 수 없음 |
| -667 | 분할된 테이블 공간에 대한 클러스터링 색인을 명시적으로 삭제할 수 없음 |
| -668 | 테이블에 행 속성 감도로 정의된 편집 절차가 있기 때문에 열을 테이블에 추가할 수 없음 |
| -669 | 개체를 명시적으로 삭제할 수 없음.이유 코드 |
| -670 | 테이블의 기록 길이가 페이지 크기 제한을 초과하다. |
| -671 | 테이블 공간의 버퍼풀 속성은 테이블 공간의 페이지 크기를 변경하므로 지정된 대로 변경할 수 없음 |
| -672 | table_name 테이블에서 작업 드랍이 허용되지 않음 |
| -676 | 지수의 물리적 특성은 지정된 문장과 양립할 수 없다.그 진술은 실패했다.이유 코드 |
| -677 | 버퍼 풀 확장을 위한 가상 스토리지 부족 |
| -678 | 인덱스 제한 키에 지정된 상수는 해당 열 이름의 데이터 유형 데이터 유형을 준수해야 한다. |
| -679 | 드롭이 오브젝트에 보류 중이므로 오브젝트 이름을 작성할 수 없음 |
| -680 | 테이블, 뷰 또는 테이블 함수에 대해 지정된 열이 너무 많음 |
| -681 | 설치 정의 필드 절차를 위반하는 열 열 이름.rt: 반환 코드, rs: 이유 코드, msg: 메시지 표시 |
| -682 | 필드 프로시저 이름을 로드할 수 없음 |
| -683 | 열, 고유 유형, 함수 또는 절차 데이터에 대한 규격은 호환되지 않는 절을 포함한다. |
| -684 | 상수 목록 시작 문자열이 너무 길다. |
| -685 | 잘못된 필드 유형, 열 이름 |
| -686 | 필드 프로시저로 정의된 열은 필드 프로시저가 다른 열과 비교할 수 없음 |
| -687 | 비교할 수 없는 필드 유형 |
| -688 | 필드 절차, 열 이름, msgno에서 반환된 잘못된 데이터 |
| -689 | 종속 테이블에 대해 정의된 열이 너무 많음 |
| -690 | 이 문장은 데이터 정의 제어 지원에서 거부된다.이유 코드 |
| -691 | 필수 등록 테이블 이름이 없음 |
| -692 | ddl 등록 테이블 이름에 필요한 고유 인덱스 이름이 없음 |
| -693 | ddl 등록 테이블 또는 색인 이름의 열 이름이 올바르게 정의되지 않음 |
| -694 | ddl 등록 테이블 이름에 드롭이 보류 중이므로 스키마 문을 실행할 수 없음 |
| -694 | ddl 등록 테이블에 드롭이 보류 중이므로 ddl 문을 실행할 수 없음 |
| -695 | 테이블 이름의 보안 레이블 열에 잘못된 값 seclabel이 지정됨 |
| -696 | 트리거 트리거 이름의 정의에는 잘못된 상관 관계 이름 또는 전환 테이블 이름 사용이 포함된다.이유 코드=이유 코드 |
| -697 | 각 문 절에 대해 으로 정의된 트리거에는 이전 또는 새 상관 관계 이름이 허용되지 않는다.이전 절이 있는 트리거에는 old_table 또는 new_table 이름이 허용되지 않는다. |
| -747 | 테이블을 사용할 수 없다. |
| -803 | 삽입 또는 업데이트 시 키를 복제하십시오. |
| -804 | SQL 문에 대한 입력 매개 변수 오류. |
| -805 | DBRM 또는 패키지를 계획에서 찾을 수 없음 |
| -811 | SELECT INT에서 둘 이상의 행이 검색됨. |
| -818 | 계획 및 프로그램: 타임스탬프 불일치 |
| -902 | Essential Control Block(RDA/CT)에 대한 포인터 값 0, Rebind Required.이는 DB 볼륨 중 하나가 여전히 존재하지만 액세스할 수 없는 경우에도 발생할 수 있다. |
| -904 | 사용할 수 없는 리소스.다른 사람이 당신의 데이터를 잠그고 있다. |
| -911 | 교착 상태 또는 시간 초과.롤백이 완료되었다. |
| -913 | 교착 상태 또는 시간 초과.롤백 없음. |
| -922 | 권한 부여 필요. |
| -924 | DB2 연결 내부 오류. |
| -927 | 언어 인터페이스가 호출되었지만 연결이 되지 않았다. |
| -955 | 명령문을 처리하기 위해 메모리를 할당할 수 없다. |
| -964 | 트랜잭션 로그 공간이 고갈되거나 활성 트랜잭션 수가 일시적으로 증가함 |
| -970 | 루트에 의해 소유된 DB2 파일 시스템/Db2 파일 시스템에 대한 잘못된(또한 누락됨) 권한. |
| -998 | 트랜잭션 또는 경험적 접근 처리 중 오류 발생. |
| -2310 | 유틸리티가 통계를 생성할 수 없음 |
| -3508 | 스크래치 공간에 액세스하는 중 로드 오류 발생.로드 또는 로드 쿼리 중에 "TEMP_FILE" 형식의 파일 또는 경로에 액세스하는 중 오류 발생.로드 작업의 msg 파일이 저장되는 스크래치 디렉터리에는 필요한 권한이 없다. |
| -7008 | 지정된 개체가 요청된 작업에 유효하지 않음. |
| -10330 | 데이터베이스 변경에 대한 사용 권한 거부.시스템 관리자에게 문의하십시오. |
| -30090 | 응용 프로그램 실행 환경에 대한 원격 작업이 잘못됨 |
양의 값(경고)
| +98 | 동적 SQL 문은 세미콜론으로 끝난다. |
| +100 | 행을 찾을 수 없거나 커서 끝. |
| +222 | DELETE 문 내에서 행을 가져오려고 하는 중. |
| +223 | UPDATE 문 내의 행을 가져오려고 하는 중. |
| +231 | 전후로 가져오되 유효한 행에는 가져오지 마십시오. |
| +304 | 데이터 유형(데이터 유형 1)이 있는 값은 데이터 유형(데이터 유형 2)이 있는 위치(위치 번호)의 호스트 변수 범위 내에 있지 않기 때문에 호스트 변수에 할당할 수 없음 |
| +354 | 행 집합 가져오기 문은 하나 이상의 데이터 행을 반환했을 수 있다.그러나 하나 이상의 경고 조건도 마주쳤다.발생한 조건에 대한 자세한 내용은 get diagnostics 문을 사용하십시오. |
| +562 | 허가권자가 이미 허가권자로부터 권한을 가지고 있기 때문에 특권의 부여는 무시되었다. |
| +802 | null 지표는 산술적으로 -2로 설정되었다. |
참조
- "DB2 Version 9.1 for z/OS Codes" (PDF). September 2013.
- "DB2 SQL CODE Description and solutions".
- "SQL codes". September 2013.
