본문 바로가기
IT 공부/SQL

DB2 SQL 에러 코드 정리(SQLCODE)

by 해모해모 2023. 8. 24.
728x90
반응형

안녕하세요, 해모해모입니다.

 

저는 평소 업무에서 DB2를 사용하고 있는데요. Run할 때 한번에 잘 되면 좋은데 에러가 많이 나더라구요.

그 중에 제일 많이 보였던게 콘솔에 찍히는 SQLCODE였습니다.

그래서 SQL 에러코드 숫자 별 어떤 의미인지 정리해 놓고 업무에 참고하는데, 공유하면 좋을 것 같아서 공유드립니다.

SQLCODE 설명
-100 FETCH, UPDATE 또는 DELETE에 대한 행이 없거나 쿼리 결과가 빈 테이블입니다.
-101 명령문이 너무 길거나 너무 복잡합니다.
-102 string(으)로 시작하는 문자열 상수가 너무 깁니다.
-103 숫자 리터럴 literal이(가) 유효하지 않습니다.
-104 illegal SYMBOL “token”, 문법에 맞지 않는 구문입니다.
-105 string(으)로 시작하는 문자열 상수가 유효하지 않습니다.
-117 지정된 값의 수가 지정되거나 암시된 컬럼 수와 같지 않습니다.
-118 INSERT, DELETE 또는 UPDATE문의 목표인 테이블이나 뷰가 FROM절에도 지정되었습니다.
-119 SELECT절, HAVING절 또는 ORDER BY절에 지정된 expression-start(으)로 시작되는 표현식이 GROUP BY절에 지정되지 않았거나, 컬럼 함수가 있는 SELECT절, HAVING절 또는 ORDER BY절에 있으나 GROUP BY절이 지정되지 않았습니다.
-138 SUBSTR 함수의 두 번째 또는 세 번째 인수가 범위를 벗어납니다.
-172 name은(는) 유효한 함수 이름이 아닙니다.
-180 날짜 시간 값의 문자열 표현 구문이 올바르지 않습니다.
-181 날짜 시간 값의 문자열 표현이 범위를 벗어납니다.
-203 컬럼 name에 대한 참조가 명확하지 않습니다.
-204 name은(는) 정의되지 않은 이름입니다.
-205 컬럼 또는 속성 name이(가) object-name에 정의되어 있지 않습니다.
-206 name이(가) 사용된 컨텍스트에서 유효하지 않습니다.
-289 테이블 스페이스 tablespace-name에 새 페이지를 할당할 수 없습니다.
-290 테이블 스페이스 액세스가 허용되지 않습니다.
-302 EXECUTE 또는 OPEN문에 있는 호스트 변수 값이 해당 용도에 비해 너무 큽니다.
-303 데이터 유형이 호환되지 않으므로, SELECT, VALUES 또는 FETCH문의 호스트 변수에 값을 할당할 수 없습니다.
-305 NULL값은 Host변수에 Assign 될수 없습니다.
-402 산술 함수 또는 연산 operator의 피연산자 데이터 유형이 숫자가 아닙니다.
-405 값이 범위를 벗어나므로, 숫자 리터럴 literal은(는) 유효하지 않습니다.
-406 UPDATE 또는 INSERT문에 있는 숫자 값이 해당 목표 컬럼의 범위 내에 있지 않습니다.
-407 NOT NULL 컬럼 name에 널(NULL) 값을 지정할 수 없습니다.
-412 하나의 컬럼만 허용되는 서브쿼리로부터 여러 컬럼이 리턴되었습니다.
-413 숫자 데이터 유형 변환 중에 오버플로우가 발생했습니다. 해당 컬럼의 데이터 유형이 집합 연산자가 들어 있는 fullselect나, INSERT 또는 fullselect의 VALUES절의 여러 행에서 호환되지 않습니다.
-421 집합 연산자나 VALUES절의 피연산자에 있는 컬럼 수가 동일하지 않습니다.
-440 호환되는 인수를 갖는 유형이 routine-type인 권한이 부여된 루틴 routine-name을(를) 찾을 수 없습니다.
-461 데이터 유형이 source-data-type인 값은 유형 target-data-type(으)로 캐스트할 수 없습니다.
-530 FOREIGN KEY constraint-name의 삽입 또는 갱신 값이 상위 테이블의 상위 키 값과 동일하지 않습니다.
-531 관계 constraint-name의 상위 행에 있는 상위 키를 갱신할 수 없습니다.
-542 name에 널(NULL) 값이 포함될 수 있으므로 기본 키나 고유 키의 컬럼이 될 수 없습니다.
-551 authorization ID에는 오브젝트 name에서 조작 operation을(를) 수행할 수 있는 특권이 없습니다.
-552 authorization-ID에는 조작 operation을(를) 수행할 수 있는 특권이 없습니다.
-773 CASE문의 CASE를 찾을 수 없습니다.
-801 0으로 나누려고 했습니다.
-802 산술 오버플로우 또는 다른 산술 예외가 발생했습니다.
-803 index-id(으)로 식별된 기본 키, 고유 제한조건 또는 고유 인덱스가 테이블 table-name이(가) 이러한 컬럼에 대해 중복된 행을 갖지 못하도록 제한하므로, INSERT문, UPDATE문에 있는 하나 이상의 값 또는 DELETE문에 의한 외부 키 갱신이 유효하지 않습니다.
-811 스칼라 fullselect, SELECT INTO문 또는 VALUES INTO문의 결과가 두 행 이상입니다.
-900 응용프로그램 상태에 오류가 있습니다. 데이터베이스 연결이 없습니다.
-904 Resouce Unavailable – 다양한 원인이 있으므로 Reason Code 확인해야함
-911 현재 트랜잭션이 교착 상태 또는 시간종료로 인해 롤백되었습니다. 이유 코드 reason-code. 00C90088 – deadlock , 00C9008E - timeout
-912 데이터베이스에 대한 최대 잠금 요청 수에 도달했습니다.
-913 현재 트랜잭션이 교착 상태(DEADLOCK) 또는 시간종료(TIMEOUT)인해 에러가 발생했습니다. 이유 코드 reason-code.

 

728x90
반응형

'IT 공부 > SQL' 카테고리의 다른 글

[SQLP] Redo  (0) 2024.01.15
[SQLP] 버퍼 LOCK  (0) 2024.01.15
[SQLP] DB 버퍼 캐시  (2) 2024.01.15
[SQLP] 오라클 기본아키텍처  (2) 2024.01.14
DBMS별 날짜 포맷 - Default 날짜/날짜 조회/날짜 변환  (0) 2023.08.24

댓글