본문 바로가기
[ Developer ]/DB2

[DB2] DB2 SQLCODE SQLSTATE 목록

by 김현섭. 2017. 11. 24.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

DB2 에러코드 목록

DB2 SQLCODE 
DB2 SQLSTATE

 

SQL0400 - SQL0499

SQL0401N
연산 operator에 대한 피연산자의 데이터 유형이 호환되지 않습니다.
설명:

SQL문 내에 표시되는 연산 operator에 숫자와 비숫자 피연산자가 혼합되어 있거나, 연산의 피연산자가 서로 호환되지 않습니다.

페더레이티드 시스템 사용자: 이 데이터 유형 위반은 데이터 소스 또는 페더레이티드 서버에 있을 수 있습니다.

일부 데이터 소스는 operator에 적절한 값을 제공하지 않습니다. 이 경우, 메시지 토큰의 형식은 『<data source>:UNKNOWN』이며, 이는 지정된 데이터 소스의 실제 값을 알 수 없음을 나타냅니다.

명령문을 처리할 수 없습니다.

사용자 응답:

모든 피연산자의 데이터 유형을 점검하여 이 유형이 비교되고 명령문 사용법과 호환되는지 점검하십시오.

모든 SQL문 피연산자가 올바르고 뷰에 액세스 중이면, 모든 뷰 피연산자의 데이터 유형을 점검하십시오.

페더레이티드 시스템 사용자: 이유를 알 수 없는 경우, 요청에 실패한 데이터 소스에 대해 문제점을 분리하고(실패한 데이터 소스를 식별하기 위해 수행할 프로시저에 대해서는 

문제점 해결 안내서

 참조) 데이터 소스의 데이터 유형 제한사항을 검토하십시오.

sqlcode : -401

sqlstate : 42818

 

SQL0402N
산술 함수 또는 연산 operator의 피연산자 데이터 유형이 숫자가 아닙니다.
설명:

산술 함수 또는 연산 operator에 숫자가 아닌 피연산자가 지정되었습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

SQL문의 구문을 정정하여 지정한 모든 함수나 연산자의 피연산자가 숫자가 되도록 하십시오.

페더레이티드 시스템 사용자: 이유를 알 수 없는 경우, 요청에 실패한 데이터 소스에 대해 문제점을 분리하고(실패한 데이터 소스를 식별하기 위해 수행할 프로시저에 대해서는 문제점 해결 안내서 참조) 데이터 소스에 적용된 연산자를 검토하십시오.

sqlcode : -402

sqlstate : 42819

 

SQL0403W
새로 정의된 별명 name이(가) 현재 정의되지 않은 오브젝트 name2(으)로 분석되었습니다.
설명:

별명 "<name>"이 다음에 대해 정의되었습니다.

  • 현재 데이터베이스 내에 정의되어 있지 않은 테이블이나 뷰
  • 데이터베이스 내에 정의되어 있지 않은 테이블이나 뷰로 분석되는 다른 별명

오브젝트 "<name2>"는 정의되지 않은 오브젝트입니다. 이 오브젝트가 존재해야 SQL문(CREATE ALIAS는 제외)이 새로 작성된 별명을 사용할 수 있습니다. 지정된 별명 "<name>"이 작성됩니다.

작동 불능 뷰는 별명을 작성할 목적으로 정의되지 않은 것으로 간주됩니다.

사용자 응답:

SQL문(CREATE ALIAS는 제외)에서 새로 작성된 별명을 사용하기 전에 정의되지 않은 오브젝트 "<name2>"가 정의되었는지 확인하십시오.

sqlcode : +403

sqlstate : 01522

 

SQL0404N
UPDATE 또는 INSERT문의 문자열이 컬럼 name에 비해 너무 깁니다.
설명:

INSERT 또는 UPDATE문이 표시된 컬럼에 저장될 수 있는 최대 길이의 문자열보다 더 긴 값을 지정합니다.

명령문을 처리할 수 없습니다.

주:
name은(는) INSERT 또는 UPDATE문의 구문에 따라 SQLCA에 리턴될 수도 있고 리턴되지 않을 수도 있습니다.
사용자 응답:

오브젝트 컬럼의 길이를 점검하고, 삽입 또는 갱신 문자열이 최대 길이를 초과하지 않도록 프로그램이나 SQL문을 정정하십시오.

sqlcode : -404

sqlstate : 22001

SQL0405N
값이 범위를 벗어나므로, 숫자 리터럴 literal은(는) 유효하지 않습니다.
설명:

지정한 숫자 리터럴이 허용되는 범위 내에 있지 않습니다.

SQL 값의 올바른 범위는 다음과 같습니다.

  • FLOAT 값의 경우,
    • 0
    • +2.225E-307부터 +1.79769E+308까지의 양수 범위
    • -1.79769E+308부터 -2.225E-307까지의 음수 범위
  • DECIMAL 값의 경우, -9999999999999999999999999999999부터 9999999999999999999999999999999까지
  • INTEGER 값의 경우, -2147483647부터 2147483647까지
  • SMALLINT 값의 경우, -32768부터 +32767까지

일부 컨텍스트에서는 리터럴에 더 많은 제한이 있어 이러한 오류가 발생하기도 합니다. 자세한 정보는

SQL 참조서

에서 명령문 또는 절을 찾아보십시오.

페더레이티드 시스템 사용자: 이 범위 위반은 데이터 소스 또는 페더레이티드 서버에 있을 수 있습니다. 데이터 소스 테이블에 위치한 SQL 값의 적절한 범위는 데이터 소스에 따라 달라집니다. 올바른 범위를 알아보려면 데이터 소스의 해당 문서를 참조하십시오. 일부 데이터 소스는 literal에 적절한 값을 제공하지 않습니다. 이 경우, 메시지 토큰의 형식은 『<data source>:UNKNOWN』이며, 이는 지정된 데이터 소스의 실제 값을 알 수 없음을 나타냅니다.

범위 클러스터 테이블: 범위 정의의 종료 값은 시작 값보다 작습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

리터럴 값을 적절한 크기로 줄이십시오.

페더레이티드 시스템 사용자: 이유를 알 수 없는 경우, 요청에 실패한 데이터 소스에 대해 문제점을 분리하고(실패한 데이터 소스를 식별하기 위해 수행할 프로시저는 문제점 해결 안내서 참조) 데이터 소스의 데이터 범위 제한사항을 검토하십시오.

범위 클러스터 테이블: 범위 정의의 종료 값이 시작 값보다 큰지 확인하십시오.

sqlcode : -405

sqlstate : 42820

 

SQL0406N
UPDATE 또는 INSERT문에 있는 숫자 값이 해당 목표 컬럼의 범위 내에 있지 않습니다.
설명:

UPDATE 또는 INSERT SQL문의 처리 중에 계산된 호스트 변수 값이나 숫자 값이 목표 컬럼 범위 내에 있지 않습니다. 이러한 문제는 오브젝트 컬럼에 나타나는 값, 이러한 값에 수행된 SQL 조작 또는 양쪽 모두에서 발생할 수 있습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

숫자 데이터 유형에 허용되는 범위에 대해서는 메시지 SQL0405 설명을 참조하십시오.

주: 시스템 카탈로그 갱신의 경우 갱신 가능 카탈로그의 여러 컬럼에 유효한 범위에 대해서는 

SQL 참조서

를 참조하십시오.

sqlcode : -406

sqlstate : 22003

 

SQL0407N
NOT NULL 컬럼 name에 널(NULL) 값을 지정할 수 없습니다.
설명:

다음 중 하나가 발생했습니다.

  • 갱신 또는 삽입 값이 NULL이었지만, 오브젝트 컬럼이 테이블 정의에서 NOT NULL로 선언되었습니다. 따라서
    • 컬럼에 널(NULL) 값을 삽입할 수 없습니다.
    • 갱신에 의해 해당 컬럼의 값을 널(NULL)로 설정할 수 없습니다.
    • 트리거의 SET 전이 변수 명령문은 해당 컬럼의 값을 NULL로 설정할 수 없습니다.
  • 갱신 또는 삽입 값이 DEFAULT이었지만, 오브젝트 컬럼이 테이블 정의에서 WITH DEFAULT 없이 NOT NULL로 선언되었습니다. 따라서
    • 디폴트값 널(NULL)이 컬럼에 삽입되지 않습니다.
    • 갱신에 의해 해당 컬럼에서 디폴트값 널(NULL)로 설정할수 없습니다.
    • 트리거의 SET 전이 변수 명령문은 해당 컬럼에서 디폴트값 널(NULL)을 설정할 수 없습니다.
  • INSERT문에 대한 컬럼 이름 목록에서 테이블 정의에 NOT NULL로 선언되었고 WITH DEFAULT가 없는 컬럼을 생략합니다.
  • INSERT문에 대한 뷰에서 기본 테이블 정의에 NOT NULL로 선언되었고 WITH DEFAULT가 없는 컬럼을 생략합니다.

name에 대한 값의 양식이 『TBSPACEID=n1, TABLEID=n2, COLNO=n3』인 경우, 오류가 발생하면 SQL문의 컬럼 이름이 사용 불가능합니다. 제공된 값은 널(NULL) 값을 허용하지 않는 기본 테이블의 컬럼 수, 테이블 및 테이블 스페이스를 식별합니다.

페더레이티드 시스템 사용자: 이 상황은 페더레이티드 서버 또는 데이터 소스에서 발견될 수 있습니다. 일부 데이터 소스는 name에 적절한 값을 제공하지 않습니다. 이 경우, 메시지 토큰의 형식은 『<data source>:UNKNOWN』이며, 이는 지정된 데이터 소스의 실제 값을 알 수 없음을 나타냅니다.

명령문을 처리할 수 없습니다.

주:
상황에 따라, 토큰 name은(는) 채워지지 않을 수도 있습니다(SQLCA의 sqlerrmc 필드가 채워지지 않음).
사용자 응답:

테이블의 어느 컬럼에 NOT NULL 속성이 있는지, 어느 컬럼에 WITH DEFAULT 속성이 없는지를 판별하기 위해 오브젝트 테이블 정의를 검토한 후 SQL문을 정정하십시오.

name에 대한 값의 양식이 『TBSPACEID=n1, TABLEID=n2, COLNO=n3』인 경우, 다음 쿼리를 사용하여 테이블 이름과 컬럼 이름을 판별할 수 있습니다.

   SELECT C.TABSCHEMA, C.TABNAME,          C.COLNAME       FROM SYSCAT.TABLES AS T,           SYSCAT.COLUMNS AS C      WHERE T.TBSPACEID = n1      AND T.TABLEID = n2      AND C.COLNO = n3      AND C.TABSCHEMA = T.TABSCHEMA      AND C.TABNAME = T.TABNAME  

이 쿼리로 식별되는 테이블과 컬럼은 SQL문이 실패한 뷰의 기본 테이블일 수 있습니다.

페더레이티드 시스템 사용자: 이유를 알 수 없는 경우, 요청에 실패한 데이터 소스에 대해 문제점을 분리하고(실패한 데이터 소스를 식별하기 위해 수행할 프로시저에 대해서는 문제점 해결 안내서 참조) 데이터 소스의 오브젝트 정의를 검토하십시오. 디폴트값(NULL 및 NOT NULL)이 데이터 소스간에 반드시 같을 필요는 없습니다.

sqlcode : -407

sqlstate : 23502

 

SQL0408N
값이 지정 목표의 데이터 유형과 호환되지 않습니다. 목표 이름은 name입니다.
설명:

SQL문에 의해 컬럼, 매개변수, SQL 변수 또는 전이 변수에 지정될 값의 데이터 유형이 지정 목표의 선언된 데이터 유형과 호환되지 않습니다. 둘 다 다음과 같아야 합니다.

  • 숫자
  • 문자
  • 그래픽
  • 날짜 또는 문자
  • 시간 또는 문자
  • 시간소인 또는 문자
  • 데이터 링크
  • 동일한 구별 유형
  • 값의 목표 유형이 컬럼 목표 유형의 부속 유형에 해당하는 참조 유형
  • 같은 사용자 정의 구조화된 유형. 또는 값의 정적 유형이 목표에 대한 정적 유형(선언된 유형)의 부속 유형이어야 합니다. 호스트 변수가 포함된 경우, 호스트 변수의 연관된 내장 유형은 명령문의 변환 그룹에 정의된 TO SQL 변환 함수의 매개변수와 호환되어야 합니다.

명령문을 처리할 수 없습니다.

사용자 응답:

명령문 및 가능할 경우 목표 테이블이나 뷰를 검사하여 목표 데이터 유형을 판별하십시오. 지정된 변수, 표현식 또는 리터럴 값의 데이터 유형이 지정 목표에 대해 적절한지 확인하십시오. 사용자 정의 구조화된 유형인 경우에는 지정 목표로 명령문의 변환 그룹에 정의된 TO SQL 변환 함수의 매개변수도 고려하십시오.

sqlcode : -408

sqlstate : 42821

 

SQL0409N
COUNT 함수의 피연산자가 유효하지 않습니다.
설명:

SQL문에 지정된 대로 COUNT 함수의 피연산자가 SQL 구문 규칙을 따르지 않습니다. COUNT(*)와 COUNT(DISTINCT 컬럼 )만 허용됩니다.

명령문을 처리할 수 없습니다.

사용자 응답:

COUNT(*) 또는 COUNT(DISTINCT 컬럼)를 지정하십시오.

주: 이 메시지는 버전 2 이전의 DB2 버전에만 적용됩니다.

sqlcode : -409

sqlstate : 42607

 

SQL0410N
부동 소수점 리터럴 literal에 30자를 초과하는 문자가 들어 있습니다.
설명:

지정한 부동 소수점 리터럴의 길이가 선행 0을 제외하고, 30자를 초과합니다. 부동 소수점 리터럴의 최대 길이는 30자입니다.

명령문을 처리할 수 없습니다.

사용자 응답:

지정된 리터럴의 길이를 줄이십시오.

sqlcode : -410

sqlstate : 42820

SQL0412N
하나의 컬럼만 허용되는 서브쿼리로부터 여러 컬럼이 리턴되었습니다.
설명:

SQL문의 컨텍스트에 결과로 하나의 컬럼만 가질 수 있는 fullselect가 지정되었습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

하나의 스칼라 fullselect만 허용되는 경우에는 하나의 컬럼만 지정하십시오.

sqlcode : -412

sqlstate : 42823

 

SQL0413N
숫자 데이터 유형 변환 중에 오버플로우가 발생했습니다.
설명:

SQL문을 처리하는 중에 숫자 유형을 다른 유형으로 변환할 때 오버플로우 상태가 발생했습니다. 숫자 변환은 SQL의 표준 규칙에 따라 수행됩니다.

페더레이티드 시스템 사용자: 숫자 변환이 페더레이티드 서버, 데이터 소스 또는 양쪽 모두에서 발생할 수 있습니다.

명령문을 처리할 수 없습니다. 데이터가 검색, 갱신 또는 삭제되지 않았습니다.

사용자 응답:

SQL문의 구문을 검토하여 오류의 원인을 판별하십시오. 데이터와 관련된 문제이면, 오류가 발생했을 때 처리된 데이터를 조사해야 합니다.

페더레이티드 시스템 사용자: 이유를 알 수 없는 경우, 요청에 실패한 데이터 소스에 대해 문제점을 분리하고(실패한 데이터 소스를 식별하기 위해 수행할 프로시저에 대해서는 문제점 해결 안내서 참조) 데이터 소스의 데이터 범위 제한사항을 검토하십시오.

sqlcode : -413

sqlstate : 22003

 

SQL0415N
해당 컬럼의 데이터 유형이 집합 연산자가 들어 있는 fullselect나, INSERT 또는 fullselect의 VALUES절의 여러 행에서 호환되지 않습니다.
설명:

이 오류가 발생할 수 있는 다양한 명령문이 있습니다.

  • 집합 연산자(UNION, INTERSECT 또는 EXCEPT)가 포함된 SELECT 또는 VALUES문 내에서 발생할 수 있습니다. SELECT 또는 VALUES문을 구성하는 subselect 또는 fullselect의 해당 컬럼은 호환되지 않습니다.
  • 여러 개의 행을 삽입하는 INSERT문 내에서 발생할 수 있습니다. 이러한 경우, VALUES절에 지정된 행의 해당 컬럼은 호환되지 않습니다.
  • VALUES절이 여러 개의 행과 함께 사용된 SELECT 또는 VALUES문 내에서 발생할 수 있습니다. 이러한 경우, VALUES절에 지정된 행의 해당 컬럼은 호환되지 않습니다.

다음 이유 중 하나로 인해 컬럼이 호환되지 않습니다.

  • 두 컬럼이 모두 문자가 아님
  • 두 컬럼이 모두 숫자가 아님
  • 두 컬럼이 모두 날짜가 아님
  • 두 컬럼이 모두 시간이 아님
  • 두 컬럼이 모두 시간소인이 아님
  • 두 컬럼이 모두 그래픽이 아님
  • 두 컬럼이 모두 동일한 사용자 정의 구별 유형이 아님.

컬럼의 데이터 유형이 문자, 날짜, 시간 또는 시간소인이면, 해당 컬럼은 문자열 상수가 될 수 있습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

모든 해당 컬럼 유형이 호환되도록 SELECT문에 사용된 컬럼 이름이나 VALUES절에 있는 표현식을 정정하십시오.

sqlcode : -415

sqlstate : 42825

 

SQL0416N
UNION ALL 이외의 집합 연산자로 연결된 SELECT 또는 VALUES문에서는 254바이트보다 긴 결과 컬럼을 지정할 수 없습니다.
설명:

집합 연산자로 연결된 SELECT 또는 VALUES문 중 하나가 254바이트보다 긴 결과 컬럼을 지정했습니다. 254바이트보다 긴 VARCHAR 또는 VARGRAPHIC 결과 컬럼은 UNION ALL 집합 연산자와만 함께 사용할 수 있습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

UNION 대신 UNION ALL 연산자를 사용하거나 SELECT 또는 VALUES문에서 254바이트보다 긴 결과 컬럼을 제거하십시오.

sqlcode : -416

sqlstate : 42907

SQL0417N
준비될 명령문 문자열에 동일한 연산자의 피연산자로 매개변수 표시문자가 들어 있습니다.
설명:

PREPARE 또는 EXECUTE IMMEDIATE의 오브젝트로 지정된 명령문 문자열에 매개변수 표시문자가 CAST 스펙이 없이 동일한 연산자의 피연산자로 사용된 술어 또는 표현식이 들어 있습니다. 예를 들면, 다음과 같습니다.

    ? > ?  

명령문을 처리할 수 없습니다.

사용자 응답:

이 구문은 지원되지 않습니다. CAST 스펙을 사용하여 최소한 하나의 매개변수 표시문자에 하나의 데이터 유형을 제공하십시오.

sqlcode : -417

sqlstate : 42609

 

SQL0418N
명령문에 유효하지 않은 매개변수 표시문자가 사용되었습니다.
설명:

다음 경우에는 유형이 지정되지 않은 매개변수 표시문자를 사용할 수 없습니다.

  • SELECT 목록에서
  • 날짜 시간 산술 연산의 유일한 인수로
  • 경우에 따라 스칼라 함수의 유일한 인수로
  • ORDER BY절에서 정렬 키로

다음과 같은 경우 매개변수 표시문자를 사용할 수 없습니다.

  • 준비된 명령문이 아닌 명령문에서
  • CREATE VIEW문의 fullselect에서
  • CREATE TRIGGER문의 트리거 조치에서
  • DB2 Query Patroller가 캡처하는 쿼리에서

명령문을 처리할 수 없습니다.

사용자 응답:

명령문의 구문을 정정하십시오. 유형이 지정되지 않은 매개변수 표시문자가 허용되지 않는 경우, 매개변수 표시문자에 데이터 유형을 제공하려면 CAST 스펙을 사용하십시오.

sqlcode : -418

sqlstate : 42610

 

SQL0419N
10진수 나눗셈의 연산 결과가 음의 스케일이므로 유효하지 않습니다.
설명:

지정한 10진수 나눗셈의 결과가 음의 스케일이므로 유효하지 않습니다.

10진수 나눗셈에 대한 결과의 스케일을 계산하기 위해 내부적으로 사용되는 공식은 다음과 같습니다.

결과의 스케일 = 31 - np + ns - ds  

여기서 np는 분자의 정밀도, ns는 분자의 스케일, ds는 분모의 스케일입니다.

페더레이티드 시스템 사용자: 10진수 나눗셈은 페더레이티드 서버, 데이터 소스 또는 양쪽 모두에서 발생할 수 있습니다. 지정된 10진수 나눗셈의 결과로 해당 데이터 소스의 스케일이 유효하지 않습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

10진수 나눗셈에 참여하는 모든 컬럼의 정밀도와 스케일을 조사하여 확인하십시오. 정수와 작은 정수 값은 이 계산을 위해 10진수로 변환될 수도 있습니다.

페더레이티드 시스템 사용자: 이유를 알 수 없는 경우, 요청에 실패한 데이터 소스에 대해 문제점을 분리하고(실패한 데이터 소스를 식별하기 위해 수행할 프로시저에 대해서는 문제점 해결 안내서 참조) 데이터 소스의 데이터 범위 제한사항을 검토하십시오.

sqlcode : -419

sqlstate : 42911

 

SQL0420N
함수 function-name의 문자열 인수에 유효하지 않은 문자가 있습니다.
설명:

함수 function-name에는 숫자 SQL 상수에 유효하지 않은 문자가 들어 있는 문자열 인수가 있습니다. 목표 데이터 유형으로 function-name을(를) 갖는 CAST 스펙을 사용한 결과로 이 함수가 호출되었을 수 있습니다. SQL문에 사용된 함수 또는 데이터 유형은 function-name과(와) 동의어일 수 있습니다.

DECIMAL 함수에 10진 문자가 지정된 경우, 디폴트 10진 문자 대신 이 문자를 사용해야 합니다.

사용자 응답:

10진 문자가 지정된 경우, 10진 문자를 사용하여, 숫자 유형으로 변환 중인 문자열에 숫자 SQL 상수에 유효한 문자만 포함되어 있는지 확인하십시오.

sqlcode : -420

sqlstate : 22018

 

SQL0421N
집합 연산자나 VALUES절의 피연산자에 있는 컬럼 수가 동일하지 않습니다.
설명:

UNION, EXCEPT 또는 INTERSECT 같은 집합 연산자의 피연산자에 있는 컬럼 수는 동일해야 합니다. VALUES절의 각 행에 있는 컬럼 수는 동일해야 합니다.

명령문을 처리할 수 없습니다.

사용자 응답:

각 피연산자나 VALUES절의 각 행에 있는 컬럼 수가 정확하게 동일하도록 SQL문을 변경하십시오.

sqlcode : -421

sqlstate : 42826

 

SQL0423N
로케이터 변수 variable-position은(는) 현재 아무 값도 표시하지 않습니다.
설명:

로케이터 변수에 오류가 있습니다. 여기에 할당된 유효한 결과 세트 로케이터 또는 LOB 로케이터 변수 값이 없거나, 변수와 연관된 로케이터가 해제되었거나, 결과 세트 커서가 닫혔습니다.

variable-position이(가) 제공된 경우, 이것은 지정된 변수 세트에서 오류가 있는 변수의 서수 위치를 나타냅니다. 오류가 발견된 시점에 따라 데이터베이스 관리 프로그램이 variable-position을(를) 판별하지 못할 수도 있습니다.

서수 위치 대신, variable-position이(가) "function-name RETURNS" 값을 가질 수 있으며, 이는 function-name으로 식별된 사용자 정의 함수(UDF)에서 리턴한 로케이터 값에 오류가 있음을 의미합니다.

사용자 응답:

SQL문에 사용된 로케이터 변수가 명령문이 실행되기 전에 유효한 값을 갖도록 프로그램을 정정하십시오. LOB 값은 SELECT INTO문, VALUES INTO문 또는 FETCH문을 통해 로케이터 변수에 지정될 수 있습니다. 결과 세트 로케이터 값은 ASSOCIATE LOCATORS문을 통해 리턴됩니다. 결과 세트 로케이터 값은 기본 SQL 커서가 열려 있는 동안에만 유효합니다. 커미트 또는 롤백 조작이 SQL 커서를 닫으면, 커서와 연관된 결과 세트 로케이터는 더 이상 유효하지 않습니다.

이것이 WITH RETURN 커서인 경우, 할당하기 전에 커서가 열려 있는지 확인하십시오.

sqlcode : -423

sqlstate : 0F001

 

SQL0426N
동적 커미트가 응용프로그램 실행 환경에 유효하지 않습니다.
설명:

CONNECT TYPE 2 환경 또는 CICS와 같은 분산 트랜잭션 프로세싱 환경에서 실행 중인 응용프로그램이 SQL 동적 COMMIT문을 실행하려고 했습니다. 이 환경에서는 SQL 동적 COMMIT문을 실행할 수 없습니다.

페더레이티드 시스템 사용자: pass-through 세션 중에 SQL 동적 COMMIT문을 실행할 수 없습니다.

사용자 응답:
  • DTP 환경에서 제공하는 COMMIT문을 사용하여 커미트를 수행하십시오. 예를 들어, CICS 환경에서는 CICS SYNKPOINT 명령이 됩니다.
  • 이 명령문이 스토어드 프로시저 내에서 실행된 경우, 명령문 전체를 제거하십시오.

페더레이티드 시스템 사용자: COMMIT문에서 주석 표시를 제거하거나 정적 명령문으로 코드를 작성하십시오. 그런 다음 프로그램을 다시 제출하십시오.

sqlcode : -426

sqlstate : 2D528

 

SQL0427N
동적 롤백이 응용프로그램 실행 환경에 유효하지 않습니다.
설명:

CONNECT TYPE 2 환경 또는 CICS와 같은 분산 트랜잭션 프로세싱 환경에서 실행 중인 응용프로그램이 SQL 동적 ROLLBACK문을 실행하려고 했습니다. 이 환경에서는 SQL 동적 ROLLBACK문을 실행할 수 없습니다.

페더레이티드 시스템 사용자: pass-through 세션 중에 SQL 동적 ROLLBACK문을 실행할 수 없습니다.

사용자 응답:
  • DTP 환경에서 제공하는 ROLLBACK문을 사용하여 롤백을 수행하십시오. 예를 들어, CICS 환경에서는 CICS SYNCPOINT ROLLBACK 명령이 됩니다.
  • 이 명령문이 스토어드 프로시저 내에서 실행된 경우, 명령문 전체를 제거하십시오.

페더레이티드 시스템 사용자: ROLLBACK문에서 주석 표시를 제거하거나 정적 명령문으로 코드를 작성하십시오. 그런 다음 프로그램을 다시 제출하십시오.

sqlcode : -427

sqlstate : 2D529

 

SQL0428N
SQL문은 작업 단위(UOW)에서 첫 번째 명령문으로만 허용됩니다.
설명:

작업 단위(UOW)를 시작하는 다른 SQL문보다 먼저 발행된 SQL문을 실행해야 합니다. 다음과 같은 상황이 발생할 수 있습니다.

  • SQL문은 작업 단위(UOW) 내에서 처음에 와야 하며, 작업 단위 내의 연결에 대해 SQL이 발행되었습니다.
  • SQL문은 작업 단위(UOW) 내에서 처음에 와야 하며, WITH HOLD 커서가 현재 연결을 위해 열려 있습니다.

명령문이 DISCONNECT ALL인 경우, 모든 연결에 대해 DISCONNECT가 방향지정되므로 연결 중 하나가 위의 제한사항을 위반하면 요청이 실패하게 됨에 유의하십시오.

사용자 응답:

SQL문을 처리하기 전에 COMMIT 또는 ROLLBACK을 발행하십시오. WITH HOLD 커서가 있으면 이를 닫아야 합니다. SET INTEGRITY문의 경우에는 COMMIT THRESHOLD절을 제거하십시오.

sqlcode : -428

sqlstate : 25001

 

SQL0429N
최대 동시 LOB 로케이터 수를 초과했습니다.
설명:

DB2에서는 작업 단위(UOW)당 최대 32,000개의 동시 LOB 로케이터를 지원합니다.

사용자 응답:

더 적은 수의 동시 LOB 로케이터를 요구하도록 프로그램을 수정한 후 다시 시도하십시오.

sqlcode : -429

sqlstate : 54028

 

SQL0430N
사용자 정의 함수(UDF) function-name(특정 이름 specific-name)이(가) 비정상적으로 종료되었습니다.
설명:

이름 지정된 UDF를 제어하는 동안 비정상 종료가 발생했습니다.

사용자 응답:

UDF를 정정해야 합니다. UDF 작성자나 데이터베이스 관리자에게 문의하십시오. 정정될 때까지 UDF를 사용하지 마십시오.

sqlcode : -430

sqlstate : 38503

 

SQL0431N
사용자 정의 함수(UDF) function-name(특정 이름 specific-name)이(가) 사용자에 의해 인터럽트되었습니다.
설명:

이름 지정된 UDF를 제어하는 동안 사용자/클라이언트 인터럽트가 발생했습니다.

사용자 응답:

이것은 무한 루프나 대기 같은 UDF 내의 문제점을 나타냅니다. 문제가 계속되면(즉, 필요한 인터럽트로 인해 동일한 오류 상황이 발생하는 경우) UDF 작성자나 데이터베이스 관리자에게 문의하십시오. 문제점이 정정될 때까지 UDF를 사용하지 마십시오.

sqlcode : -431

sqlstate : 38504

 

SQL0432N
매개변수 표시문자는 사용자 정의 유형 이름 또는 참조 목표 유형 이름 udt-name을(를) 가질 수 없습니다.
설명:

명령문의 매개변수 표시문자가 사용되는 컨텍스트에 따라 사용자 정의 함수(UDF) udt-name 또는 목표 유형이 udt-name인 참조 유형을 가지고 있는 것으로 판별되었습니다. 매개변수 표시문자는 지정문(INSERT의 VALUES절 또는 UPDATE의 SET절)의 일부이거나, CAST 스펙을 사용하여 사용자 정의 구별 데이터 유형 또는 참조 데이터 유형으로 명시적 캐스트가 되지 않는 한, 데이터 유형으로 사용자 정의 유형 또는 참조 유형을 가질 수 없습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

매개변수 표시문자의 사용자 정의 구별 데이터 유형 또는 참조 데이터 유형에 대해 명시적인 캐스트를 사용하십시오. 또는 사용자 정의 구별 유형인 컬럼을 해당 소스 데이터 유형으로, 또는 참조 데이터 유형인 컬럼을 해당 표시 유형으로 캐스트할 수도 있습니다.

sqlcode : -432

sqlstate : 42841

 

SQL0433N
값 value이(가) 너무 깁니다.
설명:

값을 변환하기 위해 호출되는 시스템(내장) 캐스트 또는 조정 함수를 사용하여 값 value을(를) 절단해야 합니다. 이 값이 사용되는 위치에서는 절단이 허용되지 않습니다.

변환되는 값은 다음 중 하나입니다.

  • 사용자 정의 함수(UDF)의 인수
  • UPDATE문의 SET절에 대한 입력
  • 테이블에 INSERT되는 값
  • 일부 다른 컨텍스트에서 캐스트 또는 조정 함수에 대한 입력
  • 데이터 유형 및 길이가 재귀의 초기화 부분에서 결정되고, 재귀의 반복되는 부분에서 커질 수 있는 연속 참조 컬럼

명령문이 실패했습니다.

사용자 응답:

SQL문에서 value이(가) 리터럴 문자열인 경우, 길이가 그 용도에 비해 너무 깁니다.

value이(가) 리터럴 문자열이 아닌 경우, SQL문을 검토하여 변환이 수행되는 위치를 판별하십시오. 변환에 대한 입력이 너무 길거나, 목표가 너무 짧습니다.

문제점을 해결한 후 명령문을 다시 실행하십시오.

sqlcode : -433

sqlstate : 22001

 

SQL0434W
절 clause에 지원되지 않는 값이 값 value(으)로 대체되었습니다.
설명:

절 clause에 식별된 값이 지원되지 않으므로 지원되는 지정된 값 value(으)로 대체되었습니다.

사용자 응답:

선택된 값이 허용되면 변경할 필요가 없습니다. 그렇지 않은 경우, clause에 유효한 값을 지정하십시오.

sqlcode : +434

sqlstate : 01608

 

SQL0435N
유효하지 않은 응용프로그램 정의 SQLSTATE sqlstate이(가) 지정되었습니다.
설명:

RAISE_ERROR 함수나 SIGNAL 또는 RESIGNAL문에 의해 지정된 SQLSTATE 값이 응용프로그램 정의 SQLSTATE에 대한 규칙을 따르지 않습니다.

사용자 응답:

SQLSTATE에 지정된 값을 정정하십시오. SQLSTATE 값은 정확히 5자로 이루어진 문자열이어야 합니다. 길이가 5로 정의된 CHAR 유형이거나 길이가 5 이상으로 정의된 VARCHAR 유형이어야 합니다. SQLSTATE 값은 응용프로그램 정의 SQLSTATE에 대한 규칙을 따라야 합니다.

다음은 SIGNAL 또는 RESIGNAL문에 지정된 SQLSTATE 값에 대한 규칙입니다.

  • 각 문자는 숫자('0' - '9') 또는 강세 표시가 없는 대문자('A' - 'Z')여야 합니다.
  • SQLSTATE 클래스(처음 두 문자)는 '00'이 될 수 없습니다.

다음은 RAISE_ERROR 함수에 의해 지정되는 SQLSTATE 값에 대한 규칙입니다.

  • 각 문자는 숫자('0'-'9') 또는 강세 표시가 없는 대문자('A'-'Z')여야 합니다.
  • SQLSTATE 클래스(처음 두 문자)는 '00', '01' 또는 '02'가 될 수 없습니다. 이것은 오류 클래스이기 때문입니다.
  • SQLSTATE 클래스(처음 두 문자)가 문자 '0' - '6' 또는 'A' - 'H'로 시작하면, 서브클래스(마지막 세 문자)는 'I' - 'Z' 범위의 문자로 시작해야 합니다.
  • SQLSTATE 클래스(처음 두 문자)가 문자 '7', '8', '9' 또는 'I' - 'Z'로 시작하면, 서브클래스(마지막 세 문자)는 '0' - '9' 또는 'A' - 'Z'의 문자가 될 수 있습니다.

sqlcode : -435

sqlstate : 428B3

 

SQL0436N
종료 널(NULL) 문자가 C 언어 널(NULL) 종료 문자열 호스트 변수에서 누락되었습니다.
설명:

C 프로그래밍 언어로 작성된 입력 호스트 변수 코드의 값에는 문자열 끝에 반드시 널(NULL) 종료 문자가 있어야 합니다.

명령문을 처리할 수 없습니다.

사용자 응답:

입력 호스트 변수 값의 끝에 널(NULL) 종료 문자가 있는지 확인하십시오.

sqlcode : -436

sqlstate : 22024

 

SQL0437W
이 복합 쿼리의 성능이 최적이 아닐 수 있습니다. 이유 코드: reason-code.
설명:

쿼리의 복잡도로 사용 불가능한 자원이 필요하거나 최적화 바운더리 조건이 발견되었으므로, 명령문이 최적에 미치지 못하는 성능을 보일 수 있습니다. 다음은 이유 코드 목록입니다.

1
조인 열거 메소드가 메모리 제한조건으로 인해 변경되었습니다.
2
조인 열거 메소드가 쿼리 복잡도로 인해 변경되었습니다.
3
옵티마이저 비용 언더플로우
4
옵티마이저 비용 오버플로우
5
쿼리 최적화 클래스가 너무 작습니다.
6
옵티마이저가 유효하지 않은 통계를 무시했습니다.

명령문이 처리됩니다.

사용자 응답:

다음 중 하나 이상의 항목을 수행하십시오.

  • 데이터베이스 구성 파일의 명령문 힙(stmtheap) 크기를 늘리십시오(이유 코드 1).
  • 명령문을 조금 덜 복잡한 SQL문으로 분할하십시오(이유 코드 1,2,3,4).
  • 술어가 응답 세트를 너무 많이 지정하지 않았는지 확인하십시오(이유 코드 3).
  • 현재의 쿼리 최적화 클래스를 더 작은 값으로 변경하십시오(이유 코드 1,2,4).
  • 쿼리에 포함된 테이블에 대해 Runstat를 발행하십시오(이유 코드 1,2,3,4).
  • 현재의 쿼리 최적화 클래스를 더 큰 값으로 변경하십시오(이유 코드 5).
  • 쿼리에 포함된 테이블과 해당 인덱스 모두에 대해 RUNSTATS를 다시 발행하십시오. 예를 들어, 테이블과 인덱스 통계가 일치되도록 AND INDEX ALL절을 사용하십시오(이유 코드 6).

sqlcode : +437

sqlstate : 01602

 

SQL0438N
응용프로그램이 진단 텍스트: text과(와) 함께 오류를 표시했습니다.
설명:

트리거에서 RAISE_ERROR 함수 또는 SIGNAL SQLSTATE문의 실행 결과로 오류 또는 경고가 발생했습니다. '01' 또는 '02'로 시작하는 SQLSTATE 값은 경고를 나타냅니다.

사용자 응답:

응용프로그램 문서를 참조하십시오.

sqlcode : -438, +438

sqlstate : application-defined

 

SQL0439N
사용자 정의 함수(UDF) function-name이(가) 함수 source-function에 의해 간접적으로 구현되었습니다. 그 결과 오류 sqlcode이(가) 발생했습니다.
설명:

함수 function-name이(가) 사용자 명령문에서 참조되었습니다. 그러나 SOURCE절이 이 함수의 정의에 사용되었으므로, 함수 source-function이(가) 실제로 함수를 구현하는 것으로 밝혀졌습니다. (function-name에서 source-function(으)로의 직접적 또는 간접적인 정의 경로입니다.) 컴파일시source-function에 대한 인캡슐레이터(함수 대신 작동하는 DB2 코드)가 sqlcode(으)로 식별되는 오류를 리턴했습니다.

사용자 응답:

정정 조치를 취하기 전에 실제 오류 상황을 보다 잘 이해해야 합니다. sqlcode에 대한 설명을 찾아보십시오. source-function이(가) 내장 함수인 경우, sqlcode은(는) 내장 함수가 사용자 명령문에서 직접 참조되는 경우처럼 문제점을 표시해야 합니다. source-function이(가) 사용자 정의 함수(UDF)인 경우, 대부분의 메시지는 문제점을 인수 중 하나 또는 함수의 결과와 함께 나타냅니다.

문제점을 해결한 후 다시 시도하십시오.

sqlcode : -439

sqlstate : 428A0

 

SQL0440N
호환되는 인수를 갖는 유형이 routine-type인 권한이 부여된 루틴 routine-name을(를) 찾을 수 없습니다.
설명:

이 상황은 데이터베이스 관리 프로그램이 참조를 구현하기 위해 사용할 수 있는 루틴을 찾을 수 없는 경우에 루틴 routine-name을(를) 참조할 때 발생합니다. 이러한 상황이 발생하는 몇몇 이유는 다음과 같습니다.

  • routine-name이(가) 잘못 지정되었거나 데이터베이스에 존재하지 않습니다.
  • 규정된 참조가 생성되었으나, 규정자가 잘못 지정되었습니다.
  • 사용자의 SQL 경로에 원하는 함수 또는 메소드가 속하는 스키마가 들어 있지 않고 규정되지 않은 참조가 사용되었습니다.
  • 포함된 인수의 수가 잘못되었습니다.
  • 함수 또는 메소드 참조에 올바른 수의 인수가 포함되었지만, 하나 이상의 인수 데이터 유형이 올바르지 않습니다.
  • 패키지를 바인드할 때 사용된 것과 동일한 함수 ID를 갖는 데이터베이스에 루틴이 존재하지 않습니다(정적 명령문에 적용됨).
  • UPDATE문에 사용된 속성 지정에 해당되는 mutator 메소드를 찾을 수 없습니다. 속성에 대한 새 값의 데이터 유형이 속성의 데이터 유형과 같거나 승격 가능한 데이터 유형이 아닙니다.
  • 루틴 호출자에게 루틴 실행 권한이 부여되지 않았습니다.
사용자 응답:

문제점을 해결한 후 재시도하십시오. 여기에는 카탈로그 액세스, 명령문 변경, 루틴 호출자에게 실행 특권 부여, 새 함수 추가 및/또는 SQL 경로 변경이 포함될 수 있습니다.

sqlcode : -440

sqlstate : 42884

 

SQL0441N
함수 function-name에서 키워드 DISTINCT 또는 ALL이 잘못 사용되었습니다.
설명:

다음은 몇 가지 가능한 원인들입니다.

  • 키워드 DISTINCT 또는 ALL이 함수 function-name 참조 시 괄호 내에서 발견되고 함수가 스칼라 함수로 분석되었습니다. 스칼라 함수에서는 키워드 DISTINCT 또는 ALL의 사용이 유효하지 않습니다.
  • 키워드 DISTINCT가 지원되지 않는 컬럼 함수에 사용되었습니다. 이러한 함수로는 COVARIANCE, CORRELATION 및 선형 REGRESSION 함수(REGR로 시작하는 함수)가 있습니다.
  • 함수가 키워드 ALL 또는 DISTINCT를 지원하는 컬럼 함수로 예상되었으나 분석된 함수는 컬럼 함수가 아니었습니다.
사용자 응답:
  • 스칼라 함수가 사용 중이면 키워드 DISTINCT 또는 ALL을 제거하십시오. 이 키워드는 스칼라 함수에 유효하지 않습니다.
  • 함수가 DISTINCT 또는 ALL 키워드를 지원하지 않는 컬럼 함수이면 이러한 키워드를 제거하십시오.
  • 컬럼 함수가 사용 중이면, 함수 결정에 문제가 발생합니다. 함수 경로를 점검하여 원하는 함수가 스키마 중 하나에 있는지 확인하고, SYSFUNCTIONS 카탈로그에서 함수 이름 철자 및 매개변수의 수와 유형을 점검하십시오.

오류를 해결한 후 다시 시도하십시오.

sqlcode : -441

sqlstate : 42601

 

SQL0442N
루틴 routine-name을(를) 참조하는 중에 오류가 발생했습니다. 최대 허용되는 인수의 수(90)가 초과되었습니다.
설명:

루틴 routine-name에 대한 참조에 인수가 너무 많이 지정되었습니다. 허용되는 최대값은 90입니다.

사용자 응답:

사용된 인수의 수가 올바른지 확인하여 명령문을 정정하고 다시 시도하십시오.

sqlcode : -442

sqlstate : 54023

 

SQL0443N
루틴 routine-name(특정 이름 specific-name)이(가) 진단 텍스트 text과(와) 오류 SQLSTATE를 리턴했습니다.
설명:

루틴 routine-name(특정 이름 specific-name)에서 DB2로 메시지 텍스트 text과(와) 함께 SQLSTATE를 리턴했습니다. 루틴은 사용자 정의 함수(UDF) 또는 사용자 정의 메소드일 수 있습니다.

사용자 응답:

사용자가 오류의 의미를 이해해야 합니다. 데이터베이스 관리자나 루틴 작성자에게 문의하십시오.

SYSFUN 스키마의 IBM 제공 함수에서 발견된 오류는 모두 SQLSTATE 38552를 리턴합니다. 메시지에서 메시지 텍스트 부분의 형식은 다음과 같습니다.

SYSFUN:nn  

여기서 nn은 이유 코드이며 의미는 다음과 같습니다.

01
숫자 값이 범위를 벗어남
02
0으로 나눔
03
산술 오버플로우 또는 언더플로우
04
유효하지 않은 날짜 형식
05
유효하지 않은 시간 형식
06
유효하지 않은 시간소인 형식
07
시간소인 지속 시간 중 유효하지 않은 문자 표현
08
유효하지 않은 간격 유형(1, 2, 4, 8, 16, 32, 64, 128, 256 중 하나여야 함)
09
문자열이 너무 김
10
문자열 함수의 길이나 위치가 범위를 벗어남
11
부동 소수점 숫자 중 유효하지 않은 문자 표현
12
메모리 부족
13
예기치 않은 오류

SYSIBM 또는 SYSRPOC 스키마의 IBM 제공 루틴 및 SYSFUN 스키마의 IBM 제공 프로시저에서 발견된 오류는 모두 SQLSTATE 38553를 리턴합니다. 메시지의 메시지 텍스트 부분에는 SQLCODE(예: SQL0572N)가 될 수 있는 메시지 번호, DBA 오류 메시지(예: DBA4747) 또는 발생한 오류와 관련된 루틴의 일부 다른 표시가 포함됩니다. 메시지 번호의 메시지에 보통 토큰이 포함되면 이러한 토큰 값은 db2diag.log 파일에서만 사용 가능합니다.

sqlcode : -443

sqlstate : (SQLSTATE는 루틴에 의해 리턴됩니다.)

 

SQL0444N
루틴 routine-name(특정 이름 specific-name)이(가) 라이브러리 또는 경로 library-or-path, 함수function-code-id에서 코드로 구현되었지만, 액세스할 수 없습니다. 이유 코드: code.
설명:

DBMS가 루틴 routine-name(특정 이름 specific-name)을(를) 구현하는 코드 본문에 액세스하려고 했지만, 이유 코드 code(으)로 인해 액세스할 수 없습니다(코드는 아래 나열되어 있음). 루틴을 구현하는 파일은 library-or-path(으)로 식별되고 함수는 function-code-id(으)로 식별됩니다.

(이러한 마지막 두 개의 토큰은 제공될 수 있는 전체 토큰 길이의 제한 때문에 절단될 수도 있습니다. 이 경우, 카탈로그의 루틴 정의에 액세스하여 루틴에 대해 정의된 전체 라이브러리 또는 경로와 함수 코드 ID를 판별해야 합니다.)

사용자 응답:

각 이유 코드는 다음과 같습니다.

1
경로 이름 library-or-path이(가) 최대값(255바이트)보다 깁니다. 더 짧은 경로를 지정하도록 루틴 정의를 변경해야 합니다. 그렇지 않으면, DB2 인스턴스 경로 이름이 너무 깁니다. 카탈로그 정의를 살펴보고 어떤 경우인지 판별하십시오. 함수 내용을 더 짧은 경로 이름의 디렉토리로 이동해야 합니다.
2
DB2 인스턴스 경로 이름을 DB2에서 검색할 수 없습니다. 시스템 관리자에게 문의하십시오.
3
경로 library-or-path을(를) 찾을 수 없습니다. 루틴 작성자나 데이터베이스 관리자에게 문의하십시오. 루틴 정의 또는 루틴 자체의 위치를 정정해야 합니다.
4
library-or-path에서 파일을 찾을 수 없습니다. 루틴 작성자나 데이터베이스 관리자에게 문의하십시오. 루틴 정의 또는 루틴의 위치를 정정해야 하거나 루틴을 다시 링크해야 합니다. 파티션된 데이터베이스에서, 파일에는 데이터베이스의 모든 파티션에서 『<library-or-path>』로 액세스할 수 있어야 합니다.

위의 이유 이외에, 루틴이 공유 라이브러리 또는 DLL을 필요로 하고 공유 라이브러리를 찾을 수 없는 경우(UNIX 기반 시스템의 LIBPATH 환경 변수, INTEL 시스템의 PATH 환경 변수에 지정된 디렉토리의 병합을 사용하여) 이러한 이유 코드가 발생할 수 있습니다. 관련된 간접적인 다중 레벨로 인해 이 이유 코드가 발생할 수 있습니다. 예를 들어, 루틴 본문 X를 찾을 수 있으며, 필요로 하는 공유 라이브러리 Y도 찾을 수 있어야 합니다. 그러나 Y가 Z를 필요로 하지만 Z를 찾을 수 없기 때문에 SQL0444N 이유 코드 4가 발생합니다.

5
함수를 포함하는 라이브러리를 로드하기에 메모리가 부족하거나 하나 이상의 기호를 분석할 수 없습니다. 라이브러리가 제대로 링크되어 있는지 확인하려면 루틴 작성자 또는 데이터베이스 관리자에게 문의하십시오. 외부 함수와 같이 참조된 기호를 분석하는 데 필요한 모든 라이브러리가 사용 가능해야 합니다. 메모리가 부족하다고 판단되면, DB2가 사용할 수 있을 만큼의 추가 메모리를 만들도록 시스템 구성을 변경해야 합니다.
6
이름 지정된 모듈에서 함수 function-code-id을(를) 찾을 수 없습니다. 루틴 작성자나 데이터베이스 관리자에게 문의하십시오. 루틴 정의 또는 함수 자체를 정정해야 합니다.
7
함수 이름( function-code-id)으로 제공된 기호가 이름 지정된 라이브러리에서 유효한 함수 이름이 아닙니다. 루틴 작성자나 데이터베이스 관리자에게 문의하십시오. 루틴 정의 또는 함수 자체를 정정해야 합니다.
8
"load" 시스템 함수가 위에 나열된 이유가 아닌 다른 이유로 실패했습니다. 모듈이 전혀 링크되지 않았거나 올바르게 링크되지 않았을 것입니다.
9
library-or-path에서 식별된 라이브러리에 있는 함수 이름 function-code-id을(를) 분석하기에 메모리가 부족합니다. 함수가 들어 있는 라이브러리가 제대로 링크되어 있는지 확인하려면 루틴 작성자 또는 데이터베이스 관리자에게 문의하십시오. DB2 서버가 사용할 수 있을 만큼의 추가 메모리를 만들도록 시스템 구성을 변경해야 합니다.
10
loadquery 시스템 호출에 실패했습니다. 이것은 UNIX 기반 시스템에서만 발생할 수 있으며, 데이터베이스 관리 프로그램 자체가 올바르게 설치되지 않았음을 나타냅니다. 시스템 관리자에게 문의하십시오.
11
에이전트 프로세스가 libdb2.a 라이브러리에 있어야 하는 특정 데이터베이스 관리 프로그램 함수를 검색 중이지만, 찾을 수 없습니다. 이것은 UNIX 기반 시스템에서만 발생할 수 있으며, 데이터베이스 관리 프로그램이 올바르게 설치되지 않았음을 나타냅니다. 시스템 관리자에게 문의하십시오.
15
액세스가 거부되었습니다. 이는 루틴 정의 명령문의 EXTERNAL NAME 스펙이 전체 경로를 지정하지 않거나, 함수가 <db2 installation path>\function 디렉토리에 없어서 PATH 환경 변수를 사용하여 검색을 해야 하는 경우에 Windows NT 환경에서 발생할 수 있습니다. 예를 들어, PATH에서 함수가 들어 있는 디렉토리 앞에 LAN 드라이브가 있고 DB2 인스턴스가 SYSTEM 어카운트로 실행되는 경우에 이 이유 코드가 발생할 수 있습니다. 루틴 정의 명령문의 EXTERNAL NAME 스펙에 전체 경로가 포함되는지 또는 함수가 <db2 installation path설치 경로>\function 디렉토리에 존재하는지 확인하십시오. 위의 둘 중 하나가 올바르고, DB2 인스턴스가 PATH 환경 변수의 함수가 들어 있는 디렉토리 앞의 LAN 드라이브에 액세스할 수 없는 어카운트로 실행 중이기 때문에 오류가 발생하면, PATH 환경 변수에 있는 모든 네트워크 경로에 액세스할 수 있는 사용자 어카운트로 DB2 서비스를 실행하도록 다시 구성해야 합니다. DB2 서비스에 사용자 어카운트를 지정할 때, 빠른 시작 서적에 설명된 대로 어카운트에 필수 고급 사용자 권한이 부여되었는지 확인하십시오.
기타:
알 수 없는 시스템 장애가 발생했습니다. 코드를 기록해 두고 시스템 관리자에게 문의하십시오.

이 메시지의 정보를 사용하여 오류를 진단할 수 없는 경우, 시스템 관리자에게 도움을 요청해야 할 필요가 있습니다.

페더레이티드 시스템 사용자: 이 사용자 정의 함수(UDF)가 함수 템플리트이면(따라서 코드가 페더레이티드 서버에 상주할 필요가 없는 경우), 리모트 데이터 소스에서 이 함수가 평가되도록 SQL문이나 통계를 수정하는 것도 고려해 볼 수 있습니다.

sqlcode : -444

sqlstate : 42724

 

SQL0445W
값 value이(가) 절단되었습니다.
설명:

값 value이(가) 여러 가지 방법으로 값을 변환시키기 위해 호출되는 시스템(내장) 캐스트 또는 조정 함수에 의해 절단되었습니다. 이것은 경고 상황입니다.

변환 중인 값은 루틴의 출력(사용자 정의 함수(UDF) 또는 메소드)이며, 루틴 정의의 CAST FROM 스펙 때문에 또는 UDF가 다른 함수의 소스가 되고 그 결과를 변환해야 하기 때문에 변환되고 있습니다.

사용자 응답:

출력이 예상대로 생성되었으며 예기치 않은 결과로 인해 절단이 발생했는지 확인하십시오.

sqlcode : +445

sqlstate : 01004

 

SQL0447W
명령문에 절 clause을(를) 포함하는 중복된 스펙이 들어 있습니다.
설명:

clause 키워드가 명령문에 두 번 이상 포함되었습니다. 이것은 경고 상황입니다.

사용자 응답:

중복이 의도적인 것이거나 어떠한 손상도 초래하지 않는다고 판단되면, 조치가 필요하지 않습니다. 예를 들어, 언급된 "손상"의 유형에는 원하는 일부 다른 키워드의 생략이 포함될 수 있습니다.

sqlcode : +447

sqlstate : 01589

 

SQL0448N
루틴 routine-name을(를) 정의하는 중에 오류가 발생했습니다. 허용되는 최대 매개변수의 수(사용자 정의 함수(UDF) 및 메소드의 경우 90, 스토어드 프로시저의 경우 32767)가 초과되었습니다.
설명:

루틴 routine-name 정의시 너무 많은 매개변수가 지정되었습니다. 루틴 정의 명령문은 CREATE FUNCTION, CREATE PROCEDURE, CREATE TYPE(메소드 정의) 또는 ALTER TYPE(메소드 정의)일 수 있습니다.

사용자 응답:

더 적은 수의 매개변수를 포함하도록 명령문을 변경하십시오.

sqlcode : -448

sqlstate : 54023

 

SQL0449N
루틴 routine-name을(를) 정의하는 명령문에 EXTERNAL NAME절에서 유효하지 않게 형식화된 라이브러리/함수 ID가 들어 있습니다.
설명:

사용자 정의 함수(UDF), 사용자 정의 메소드 또는 프로시저 routine-name에 대한 CREATE문의 EXTERNAL NAME절에서 오류가 발견되었습니다. 라이브러리/함수 ID에 대한 규칙은 다음과 같습니다.

C 언어의 경우, 이름의 형식은 다음과 같은 '<a> 또는 '<a>!<b>'입니다.

  • <a>는 호출할 루틴(함수)을 포함하는 파일 이름입니다.
  • <b>은 루틴의 본문으로 호출될 <a> 내의 시작점(함수)을 나타냅니다. <b>가 생략되면 <a>의 디폴트 시작점을 사용합니다.

CLE의 경우, 이름의 형식은 다음과 같은 '<a>!<b>'입니다.

  • <a>는 OLE 오브젝트의 프로그램 방식 또는 클래스 ID입니다.
  • <b>는 호출할 오브젝트의 메소드입니다.

JAVA 언어 및 CLR 언어의 경우, 이름의 형식은 다음과 같은 '<a>:<b>!<c>'입니다.

  • <a>는 jar ID(JAVA 언어) 또는 클래스가 위치하는 어셈블리 파일(CLR 언어)입니다.JAVA 언어에는 '<a>:'가 선택적이며 생략되는 경우 해당 클래스는 함수 디렉토리 또는 CLASSPATH에 상주해야 합니다.
  • <b>는 호출할 메소드가 상주하는 클래스입니다.
  • <c>는 호출할 메소드입니다. JAVA 언어의 경우 '.<c>'를 '!<c>'에 대한 대안으로 사용할 수 있습니다.

모든 언어에서 작은따옴표, 오브젝트 ID 또는 분리 문자 사이에 앞 또는 뒤 공백 문자가 허용되지 않습니다.(예를 들어, ' <a> ! <b> '는 유효하지 않습니다.) 그러나 플랫폼에서 허용하는 경우 경로 및 파일 이름은 공백을 포함할 수 있습니다.

모든 파일 이름에서 파일은 축약형 이름(예: UNIX의 경우 math.a, Windows의 경우 math.dll) 또는 완전한 경로 이름(예: UNIX의 경우 /u/slick/udfs/math.a, Windows의 경우 d:\udfs\math.dll) 양식을 사용하여 지정할 수 있습니다. 축약형 파일 이름을 사용하는 경우, 파일은 다음 위치에 저장해야 합니다.

  • 플랫폼이 UNIX이거나 루틴이 CLR 언어 루틴인 경우: 함수 디렉토리
  • 플랫폼이 Windows인 경우: 시스템 경로

파일 이름에는 항상 파일 확장자(예: UNIX의 경우 .a, Windows의 경우 .dll)가 포함되어야 합니다.

사용자 응답:

문제점을 해결한 후 다시 시도하십시오. 이름의 시작 부분이나 끝부분에 공백이 포함되어 있거나, '!' 또는 ':'가 있기 때문일 수 있습니다.

sqlcode : -449

sqlstate : 42878

 

SQL0450N
루틴 routine-name(특정 이름 specific-name)이(가) 너무 긴 결과 값, SQLSTATE 값, 메시지 텍스트, 스크래치 패드를 생성했습니다.
설명:

루틴 routine-name(특정 이름 specific-name)에서 리턴할 때, DB2가 다음 중 하나에 대해 할당된 것보다 더 많은 바이트가 리턴되었음을 발견했습니다.

  • 결과 값(루틴 정의에 기초). 다음은 가능한 몇 가지 원인입니다.
    • 너무 많은 바이트가 결과 버퍼로 이동되었습니다.
    • 데이터 값이 VARCHAR(n)과 같이 널(NULL)에 의해 분리되어야 하거나 분리 널(NULL)이 정의된 크기의 범위 내에 없는 데이터 유형입니다.
    • DB2는 값 앞에 2바이트 또는 4바이트의 길이 값을 예상하지만, 이 길이는 정의된 결과 크기를 초과합니다.
    • 루틴이 LOB 로케이터를 리턴했고, 이 로케이터와 연관된 LOB 값의 길이가 정의된 결과 크기를 초과합니다.
  • Routine의 결과 인수 정의는 데이터 유형의 요구사항을 따라야 합니다. 자세한 정보는 
    응용프로그램 개발 안내서
    를 참조하십시오.
  • SQLSTATE 값(널(NULL) 종료자를 포함하여 6바이트).
  • 메시지 텍스트(널(NULL) 종료자를 포함하여 71바이트).
  • 스크래치 패드 내용(CREATE FUNCTION에 선언된 길이).

이것은 허용되지 않습니다.

이 오류는 루틴이 스크래치 패드의 길이 필드를 변경한 경우에도 리턴됩니다.

사용자 응답:

데이터베이스 관리자나 루틴 작성자에게 문의하십시오.

sqlcode : -450

sqlstate : 39501

 

SQL0451N
루틴 routine-name을(를) 정의하는 명령문의 data-item 정의가 주어진 언어로 작성된 비소스 루틴에 적절하지 않은 데이터 유형 type을(를) 포함합니다.
설명:

루틴 routine-name을(를) 정의하는 명령문의 data-item 부분에 오류가 있습니다. 사용자의 명령문에 유효하지 않은 유형 type이(가) 들어 있거나, 유효하지 않은 유형 type에 기초하는 사용자 정의 유형(UDT)이 들어 있습니다. 루틴 정의는 CREATE FUNCTION, CREATE PROCEDURE, CREATE TYPE(메소드 정의) 또는 ALTER TYPE(메소드 정의)일 수 있습니다.

data-item은(는) 명령문에서 문제 영역을 식별하는 토큰입니다. 예를 들어, "PARAMETER 2"나 "RETURNS" 또는 "CAST FROM"이 있습니다.

사용자 응답:

어떤 상황이 발생했는지 판별한 다음, 정정 조치를 취하십시오. 가능한 정정 조치는 다음과 같습니다.

  • 루틴 정의를 지원되는 유형으로 변경하십시오. 예를 들어, DECIMAL에서 FLOAT로 변경합니다. 여기에는 루틴 본문 자체에 대한 변경이 포함될 수 있으며, 루틴 사용에 따라 캐스트 함수의 사용이 포함될 수도 있습니다.
  • (적절한 기반의) 새 사용자 정의 유형을 작성하거나, 기존의 UDT 정의를 변경하십시오.

sqlcode : -451

sqlstate : 42815

 

SQL0452N
호스트 변수 variable-position에서 참조하는 파일에 액세스할 수 없습니다. 이유 코드: reason-code.
설명:

reason-code이(가) 나타내는 이유로 인해 "n번째" 호스트 변수가 참조하는 파일에 액세스하려고 하거나 액세스하는 중에 오류가 발생했습니다(여기서 n= variable-position). 호스트 변수 위치를 판별할 수 없는 경우 <variable-position>은 0으로 설정됩니다. 가능한 이유 코드는 다음과 같습니다.

  • 01 - 파일 이름 길이가 유효하지 않거나 파일 이름 및/또는 경로 형식이 유효하지 않습니다.
  • 02 - 파일 옵션이 유효하지 않습니다. 다음 값 중 하나를 사용해야 합니다.
    SQL_FILE_READ     -기존 파일로부터 읽기SQL_FILE_CREATE     -기록할 새 파일 작성SQL_FILE_OVERWRITE     -기존 파일에 겹쳐쓰기      파일이 존재하지 않으면,      파일을 작성합니다.SQL_FILE_APPEND     -기존 파일에 추가      파일이 존재하지 않으면,      파일을 작성합니다.  
  • 03 - 파일을 찾을 수 없습니다.
  • 04 - SQL_FILE_CREATE 옵션이 기존 파일과 동일한 이름의 파일에 대해 지정되었습니다.
  • 05 - 파일에 대한 액세스가 거부되었습니다. 사용자에게 파일을 열 수 있는 사용 권한이 없습니다.
  • 06 - 파일에 대한 액세스가 거부되었습니다. 파일이 호환되지 않는 모드에서 사용되고 있습니다. 기록될 파일이 독점 모드로 열려 있습니다.
  • 07 - 파일에 쓰는 동안 디스크가 가득 찼습니다.
  • 08 - 파일을 읽는 중에 예기치 않은 파일의 끝에 도달했습니다.
  • 09 - 파일에 액세스하는 중에 미디어 오류가 발견되었습니다.
  • 10 - 파일을 읽는 중에 불완전하거나 유효하지 않은 복수 바이트 문자가 발견되었습니다.
  • 11 - 파일 코드 페이지에서 응용프로그램의 그래픽 문자 코드 페이지로 데이터를 변환하는 중에 오류가 발견되었습니다.
사용자 응답:

이유 코드 01의 경우, 파일 이름 길이, 파일 이름 및/또는 경로를 정정하십시오.

이유 코드 02의 경우, 유효한 파일 옵션을 지정하십시오.

이유 코드 03의 경우, 파일에 액세스를 시도하기 전에 지정된 파일이 존재하는지 확인하십시오.

이유 코드 04의 경우, 파일이 더 이상 필요하지 않으면 파일을 삭제하거나, 현재 존재하지 않는 파일 이름을 지정하십시오.

이유 코드 05의 경우, 사용자가 파일에 대한 액세스 권한(올바른 파일 사용 권한)을 가지고 있는지 확인하십시오.

이유 코드 06의 경우, 다른 파일을 사용하거나, 파일에 액세스해야 하는 경우 응용프로그램을 수정하여 파일에 동시에 액세스하지 않도록 하십시오.

이유 코드 07의 경우, 불필요한 파일을 삭제하여 디스크 스페이스를 비우거나, 디스크 스페이스가 충분한 다른 드라이브/파일 시스템에 있는 파일을 지정하십시오. 운영 체제 또는 사용자 파일의 크기가 한계에 도달하지 않았는지도 확인하십시오. 응용프로그램 코드 페이지가 복수 바이트 코드화 체계를 사용하는 경우 마지막 문자의 일부만 기록되었을 가능성이 있으므로, 파일에 완전한 형식의 문자만 포함되는지 확인하십시오.

이유 코드 08의 경우, 파일이 입력용으로 사용되면 파일 전체를 읽기 전에 파일이 수정되지 않았는지 확인하십시오.

이유 코드 09의 경우, 파일이 있는 미디어에서 발생한 모든 오류를 해결하십시오.

이유 코드 10의 경우, 파일이 응용프로그램 코드 페이지에 기초하여 유효한 복수 바이트 문자를 포함하는지 또는 파일의 내용과 동일한 코드 페이지로 실행 중일 때 요청을 제출했는지 확인하십시오.

이유 코드 11의 경우, 파일의 코드 페이지(예: 일본어 EUC)와 응용프로그램의 그래픽 코드 페이지(예: UCS-2) 간에 문자 변환 지원이 설치되어 있는지 확인하십시오.

sqlcode : -452

sqlstate : 428A1
 
 
SQL0453N
루틴 routine-name을(를) 정의하는 명령문의 RETURNS절에서 문제점이 발견되었습니다.
설명:

루틴 routine-name의 결과를 캐스팅하는 중에 문제점이 발견되었습니다. CAST FROM 데이터 유형을 RETURNS 데이터 유형으로 캐스트할 수 없지만, 캐스트되어야 합니다. 데이터 유형 간의 캐스팅에 대한 세부사항은 

SQL 참조서

를 참조하십시오.

사용자 응답:

RETURNS절 또는 CAST FROM절을 변경하여 CAST FROM 데이터 유형이 RETURNS 데이터 유형으로 캐스트되도록 하십시오.

sqlcode : -453

sqlstate : 42880

 

SQL0454N
루틴 routine-name의 정의에 제공되는 시그니처가 유형 또는 스키마에 이미 존재하는 일부 다른 루틴의 시그니처와 일치합니다.
설명:

함수의 시그니처는 함수 이름, 함수에 정의된 매개변수 수 및 순서화된 매개변수 유형 목록(유형의 매개변수에 상관없이)으로 구성됩니다.

메소드의 시그니처는 메소드 이름, 메소드의 주제 유형, 메소드에 정의된 매개변수 수 및 순서화된 매개변수 유형 목록(유형의 매개변수와 상관없이)으로 구성됩니다.

프로시저의 시그니처는 프로시저 이름과 프로시저에 정의된 매개변수 수(데이터 유형은 고려되지 않음)로 구성됩니다.

이 경우, 다음 중 하나가 적용됩니다.

  • 작성 중인 함수 또는 프로시저와 동일한 시그니처를 갖는 스키마에 이미 함수나 프로시저(routine-name)가 있습니다.
  • 추가 중인 메소드 스펙이나 작성 중인 메소드 본문과 동일한 시그니처를 갖는 주제 유형에 대한 메소드( routine-name)가 있습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

기존 루틴이 이미 원하는 기능을 제공하는지 판별하십시오. 그렇지 않으면, 루틴 이름을 변경하는 것과 같은 방법으로 루틴의 시그니처를 변경해야 합니다.

sqlcode : -454

sqlstate : 42723

 

SQL0455N
루틴 routine-name에서 특정 이름에 제공된 스키마 이름 schema-name1은(는) 루틴의 스키마 이름schema-name2과(와) 일치하지 않습니다.
설명:

특정 이름이 두 부분의 이름으로 지정된 경우, schema-name1 부분은 routine-name의 schema-name2과(와) 같아야 합니다. routine-name의 schema-name2 부분이 직접 지정되었거나 명령문의 권한 부여 ID를 디폴트값으로 가질 수도 있음에 유의하십시오. 루틴이 메소드인 경우, schema-name은(는) 메소드 주제 유형의 스키마 이름을 참조합니다.

사용자 응답:

명령문을 정정한 후 다시 시도하십시오.

sqlcode : -455

sqlstate : 42882

 

SQL0456N
루틴 routine-name의 정의에서 특정 이름 specific-name이(가) 이미 스키마에 있습니다.
설명:

사용자가 명시적 특정 이름 specific-name을(를) 루틴 routine-name의 정의에 제공했으나, 이 이름은 이미 스키마에서 함수, 메소드 또는 프로시저의 특정 이름으로 존재합니다.

사용자 응답:

새 특정 이름을 선택한 다음 다시 시도하십시오.

sqlcode : -456

sqlstate : 42710

 

SQL0457N
함수, 메소드, 사용자 정의 데이터 유형 또는 구조화된 데이터 유형 속성은 시스템용으로 예약되어 있으므로 name(으)로 지정할 수 없습니다.
설명:

지정된 이름이 시스템용으로 예약되어 있으므로 사용자 정의 함수(UDF), 메소드, 사용자 정의 데이터 유형 또는 구조화된 데이터 유형을 작성할 수 없습니다. 함수 이름, 구별 유형 이름, 구조화된 유형 이름 또는 속성 이름에 사용할 수 없는 이름은 다음과 같습니다.

  "=","<",">",">=","<=",  "&=","&>",,"&<",  "!=","!>","!<","<>",  SOME, ANY, ALL, NOT, AND, OR,  BETWEEN, NULL, LIKE, EXISTS, IN,  UNIQUE, OVERLAPS, SIMILAR, MATCH  
사용자 응답:

함수, 메소드, 사용자 정의 데이터 유형 또는 구조화된 데이터 유형 속성에 대해 시스템용으로 예약되어 있지 않은 이름을 선택하십시오.

sqlcode : -457

sqlstate : 42939

 

SQL0458N
시그니처로 루틴 routine-name을(를) 참조하는 중에 일치하는 루틴을 찾을 수 없습니다.
설명:

시그니처로 함수, 메소드 또는 스토어드 프로시저 routine-name을(를) 참조하는 중에 일치하는 함수, 메소드 또는 스토어드 프로시저를 찾을 수 없습니다.

매개변수가 허용되는 데이터 유형이 사용되는 경우, 유형 매개변수는 선택적입니다. 예를 들어, CHAR(12)의 경우에는 매개변수(CHAR(12))를 지정하거나 생략(CHAR())할 수 있습니다. 매개변수를 지정하는 경우, DBMS는 데이터 유형과 데이터 유형 매개변수가 완전히 일치하는 경우에만 이를 허용합니다. 매개변수를 생략하는 경우, DBMS는 데이터 유형만 일치하면 이를 허용합니다. CHAR() 구문은 일치하는 함수를 찾을 때 데이터 유형 매개변수를 무시하도록 DBMS에 알리는 방법을 제공합니다.

또한 DROP FUNCTION/PROCEDURE 및 COMMENT ON FUNCTION/PROCEDURE문에서 규정되지 않은 참조는 명령문 권한 부여 ID로 규정되며, 이것은 문제가 발견될 수 있는 스키마입니다. CREATE 함수의 SOURCE절에서 규정은 현재 함수 경로에서 옵니다. 이러한 경우, 전체 경로에 일치하는 함수가 없습니다.

함수는 COALESCE, NULLIF, NODENUMBER, PARTITION, RAISE_ERROR, TYPE_ID, TYPE_NAME, TYPE_SCHEMA 또는 VALUE 내장 함수에서 전래될 수 없습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

다음 조치가 가능합니다.

  • 올바른 스키마를 포함하도록 함수 경로를 변경하십시오.
  • 데이터 유형의 스펙에서 매개변수를 제거하십시오.
  • 시그니처 대신 특정 이름을 사용하여 함수나 프로시저를 참조하십시오.

sqlcode : -458

sqlstate : 42883

 

SQL0461N
데이터 유형이 source-data-type인 값은 유형 target-data-type(으)로 캐스트할 수 없습니다.
설명:

명령문에 데이터 유형이 source-data-type인 첫 번째 피연산자를 데이터 유형 target-data-type(으)로 캐스트하는 CAST가 들어 있습니다. 이 캐스트는 지원되지 않습니다.

사용자 응답:

소스 또는 목표의 데이터 유형을 변경하여 캐스트가 지원되도록 하십시오. 사전 정의 데이터 유형에 대한 캐스트는 SQL 참조서에 나와 있습니다. 사용자 정의 구별 유형을 포함하는 캐스트의 경우, 기본 데이터 유형과 사용자 정의 구별 유형 간에 캐스트하거나, 기본 데이터 유형으로 승격 가능한 데이터 유형을 사용자 정의 구별 유형으로 캐스트할 수 있습니다.

sqlcode : -461

sqlstate : 42846

 

SQL0462W
루틴 routine-name(특정 이름 specific-name)이(가) 진단 텍스트 text과(와) 함께 경고 SQLSTATE를 리턴했습니다.
설명:

루틴 routine-name(특정 이름 specific-name)이(가) 메시지 텍스트 text와(과) 함께 01Hxx 양식의 SQLSTATE를 DB2로 리턴했습니다.

사용자 응답:

사용자는 경고의 의미를 이해해야 합니다. 데이터베이스 관리자나 루틴 작성자에게 문의하십시오.

sqlcode : +462

sqlstate : 01Hxx

 

SQL0463N
루틴 routine-name(특정 이름 specific-name)이(가) 진단 텍스트 text과(와) 함께 유효하지 않은 SQLSTATE state을(를) 리턴했습니다.
설명:

루틴이 리턴할 수 있는 유효한 SQLSTATE는 38xxx(오류), 38502(오류) 및 01Hxx(경고)입니다. 이 루틴routine-name(특정 이름 specific-name)이(가) 메시지 텍스트 text과(와) 함께 유효하지 않은 SQLSTATE state을(를) 리턴했습니다. 루틴에 오류가 있습니다.

사용자 응답:

루틴을 정정해야 합니다. 데이터베이스 관리자나 루틴 작성자에게 문의하십시오. 잘못된 SQLSTATE에 대한 응용프로그램의 의미도 루틴 작성자로부터 알 수 있습니다.

sqlcode : -463

sqlstate : 39001

 

SQL0464W
프로시저 procedure-name이(가) 정의된 한계 max-nbr-results을(를) 초과하는 generated-nbr-results 쿼리 결과 세트를 리턴했습니다.
설명:

procedure-name 이름의 스토어드 프로시저가 완료되었습니다. 그러나 스토어드 프로시저가 리턴할 수 있는 쿼리 결과 세트 수에 대해 정의된 한계를 초과했습니다.

generated-nbr-results
스토어드 프로시저가 리턴하는 쿼리 결과 세트의 수를 나타냅니다.
max-nbr-results
스토어드 프로시저의 쿼리 결과 세트 수에 정의된 한계를 나타냅니다.

첫 번째 max-nbr-results 쿼리 결과 세트만 SQL CALL문을 발행한 SQL 프로그램으로 리턴됩니다.

스토어드 프로시저가 클라이언트에 의해 강요되는 DRDA 제한으로 인해 generated-nbr-results 결과 세트를 리턴할 수 없기 때문일 수 있습니다. DRDA 클라이언트는 MAXRSLCNT DDM 코드 포인트를 사용하여 이 한계를 설정합니다.

사용자 응답:

SQL문이 성공적이었습니다. SQLWARN9 필드가 'Z'로 설정되었습니다.

sqlcode : +464

sqlstate : 0100E

 

SQL0465N
분리 모드 프로세스를 시작하거나, 초기화하거나, 이와 통신할 수 없습니다. 이유 코드 code.
설명:

분리 모드 루틴의 실행에 시스템 관련 문제가 있습니다. 문제점의 정확한 특성은 code(으)로 표시됩니다. 이것은 사용자 문제가 아닙니다. 가능한 이유 코드는 다음과 같습니다.

루틴 프로세스 오류

21:
내부 데이터나 응용프로그램 데이터의 초기화 실패
22:
신호 핸들러 등록 실패
23:
에이전트 프로세스에 REQUEST QUEUE에 대한 액세스 권한 부여 실패
24:
루틴 프로세스 공유 메모리에 연결 실패
25:
REPLY QUEUE 열기 실패
26:
REPLY QUEUE에 쓰기 실패
27:
REQUEST QUEUE 작성 실패
28:
REQUEST QUEUE 읽기 실패
29:
루틴 프로세스 중단
30:
루틴 프로세스가 USER INTERRUPT 신호 발견
31:
루틴 모듈 언로드 실패
32:
모듈 로드/언로드에 사용된 제어 블록에 대한 스토리지 할당 실패
33:
에이전트 프로세스에서 루틴 프로세스로 SIGINT 전송 실패
34:
OLE 라이브러리 초기화 실패
35:
OLE DB 초기화 서비스 구성요소의 초기화 실패
40:
루틴 프로세스에서 내부 오류 발생

에이전트 프로세스 오류

41:
루틴 프로세스 생성 실패
42:
REPLY QUEUE 작성 실패
43:
REPLY QUEUE 읽기 실패
44:
REQUEST QUEUE 열기 실패
45:
REQUEST QUEUE에 쓰기 실패
47:
루틴 프로세스에 UDFP 공유 메모리 세트에 대한 액세스 권한 부여 실패
48:
루틴 프로세스에 REPLY QUEUE에 대한 액세스 권한 부여 실패
49:
모듈 로드/언로드에 사용된 제어 블록에 대한 스토리지 할당 실패
50:
루틴 코드 또는 에이전트 코드 실행 중에 에이전트 프로세스 중단
51:
비분리 루틴 코드 실행 중에 에이전트 프로세스가 USER INTERRUPT 발견
60:
루틴 프로세스에서 내부 오류 발생
사용자 응답:

데이터베이스나 시스템 관리자에게 문의하십시오.

sqlcode : -465

sqlstate : 58032

 

SQL0466W
프로시저 procedure-name이(가) 스토어드 프로시저로부터 number-results 결과 세트를 리턴합니다.
설명:

이 메시지는 CALL SQL문을 발행한 결과로 리턴됩니다. 스토어드 프로시저 procedure-name에 이와 연관된 number-results 결과 세트가 있음을 나타냅니다.

명령문이 완료되었습니다.

사용자 응답:

조치가 필요하지 않습니다.

sqlcode : +466

sqlstate : 0100C

 

SQL0467W
프로시저 procedure-name에 다른 결과 세트가 포함됩니다. 총 max-nbr-results개의 결과 세트가 있습니다.
설명:

이 메시지는 커서를 닫은 결과로 리턴되었습니다. 스토어드 프로시저 procedure-name에 대한 또다른 결과 세트가 있고, 커서가 다음 결과 세트에서 다시 열렸음을 나타냅니다. 스토어드 프로시저로부터 총max-nbr-results개의 결과 세트가 있습니다.

명령문이 완료되었습니다.

사용자 응답:

조치가 필요하지 않습니다. 다음 결과 세트에서 페치를 진행할 수 있습니다.

sqlcode : +467

sqlstate : 0100D

 

SQL0469N
특정 이름 specific-name의 프로시저 procedure-name에 있는 매개변수에 대해 매개변수 모드(IN, OUT 또는 INOUT)가 유효하지 않습니다(매개변수 번호 number, 이름 parameter-name).
설명:

다음 오류 중 하나가 발생했습니다.

  • SQL 프로시저의 매개변수가 OUT으로 선언되고 프로시저 본문에서 입력으로 사용됩니다.
  • SQL 프로시저의 매개변수가 IN으로 선언되고 프로시저 본문에서 수정됩니다.
사용자 응답:

매개변수 속성을 INOUT으로 변경하거나, 프로시저 내에서 매개변수 사용을 변경하십시오.

sqlcode : -469

sqlstate : 42886

 

SQL0470N
사용자 정의 루틴 routine-name(특정 이름 specific-name)에 전달할 수 없는 인수 argument에 대한 널(NULL) 값이 있습니다.
설명:

루틴에 널(NULL) 표시기를 전달하지 않는 매개변수 스타일로 정의된 널(NULL) 값을 갖는 입력 인수가 있거나, 이 매개변수의 데이터 유형이 널(NULL) 값을 지원하지 않습니다.

사용자 응답:

루틴이 널(NULL) 값으로 호출될 경우, 매개변수 스타일 및 입력 유형이 널(NULL) 값을 허용하는지 확인하십시오. 함수의 경우, 이 함수를 "RETURNS NULL ON NULL INPUT"으로 작성했을 수도 있습니다.

sqlcode : -470

sqlstate : 39004

 

SQL0471N
이유 reason-code로 인하여 루틴 name의 호출에 실패했습니다.
설명:

루틴 name이(가) OS/390용 DB2 Universal Database 서버에서 호출되었습니다. DB2 이유 코드reason-code에서 설명한 조건으로 인해 루틴 호출에 실패했습니다.

명령문을 실행할 수 없습니다. 오류를 설명하는 DSNX9xx 메시지가 MVS 시스템 콘솔에 표시될 수도 있습니다.

사용자 응답:

OS/390용 DB2 Universal Database 서버 문서를 참조하고 DB2 이유 코드에서 설명하는 조건을 정정하십시오.

sqlcode : -471

sqlstate : 55023

 

SQL0472N
함수 또는 메소드 routine-name(특정 이름 specific-name)에 의해 하나 이상의 커서가 열려 있습니다.
설명:

호출 명령문이 완료되기 전에 함수 또는 메소드 routine-name(특정 이름 specific-name)이(가) 열려 있는 모든 커서를 닫지 않았습니다. 호출 명령문이 완료되기 전에 함수 또는 메소드가 모든 커서를 닫아야 합니다.

사용자 응답:

함수 또는 메소드 개발자에게 문의하십시오. 호출 명령문이 완료되기 전에 모든 커서를 닫도록 하려면 함수 또는 메소드를 다시 작성해야 합니다.

sqlcode : -472

sqlstate : 24517

 

SQL0473N
시스템 사전 정의 유형과 동일한 이름의 사용자 정의 데이터 유형을 작성할 수 없습니다.
설명:

작성될 데이터 유형 이름은 시스템 사전 정의 데이터 유형과 동일하거나 BOOLEAN인 규정되지 않은 이름입니다. 이것은 허용되지 않습니다. 분리문자를 추가하면 이름이 유효하지 않게 됩니다.

명령문을 처리할 수 없습니다.

사용자 응답:

다른 ID를 사용하도록 명령문을 정정하십시오.

sqlcode : -473

sqlstate : 42918

 

SQL0475N
SOURCE 함수의 결과 유형 type-1은(는) 사용자 정의 함수(UDF) function-name의 RETURNS 유형type-2(으)로 캐스트될 수 없습니다.
설명:

전래된 사용자 정의 함수(UDF)의 CREATE가 유효하게 되려면, 소스 함수의 결과 유형( type-1)이 작성 중인 함수의 RETURNS 유형( type-2)으로 캐스트될 수 있어야 합니다. 이들 데이터 유형 간에 지원되는 캐스트가 없습니다. 데이터 유형 간의 캐스팅에 대한 세부사항은 

SQL 참조서

를 참조하십시오.

사용자 응답:

RETURNS 데이터 유형이나 SOURCE 함수 ID를 변경하여 SOURCE 함수의 결과 유형이 RETURNS 데이터 유형으로 캐스트될 수 있도록 하십시오.

sqlcode : -475

sqlstate : 428664

 

SQL0476N
루틴 function-name에 대한 참조가 시그니처 없이 수행되었지만, 루틴이 스키마에서 고유하지 않습니다.
설명:

시그니처 없는 함수 또는 스토어드 프로시저에 대한 참조는 허용되지만, 이름이 지정된 함수 또는 스토어드 프로시저 function-name이(가) 해당 스키마에서 고유해야 하는데 그렇지 않습니다. 루틴이 메소드인 경우, 시그니처 없는 참조가 허용되지만 이름이 지정된 메소드는 해당 데이터 유형에 대해 고유해야 합니다.

또한 DROP FUNCTION/PROCEDURE 및 COMMENT ON FUNCTION/PROCEDURE문에서 규정되지 않은 참조는 명령문 권한 부여 ID로 규정되며, 이것은 문제가 발견될 수 있는 스키마임에 유의하십시오. CREATE FUNCTION의 SOURCE절에서 규정은 현재 함수 경로에서 옵니다. 이 경우, 이 이름의 함수가 있는 경로에서 첫 번째 스키마에 동일한 이름의 다른 함수가 있습니다.

페더레이티드 시스템 사용자: pass-through 세션의 경우 명령문이 CREATE FUNCTION MAPPING문이면, 이 오류는 하나의 리모트 함수에서 둘 이상의 로컬 함수로 함수 맵핑을 작성하려고 했음을 나타냅니다.

사용자 응답:

다음 중 하나를 수행하여 참조를 정정하십시오.

  • 시그니처를 완료하십시오.
  • 원하는 루틴의 특정 이름을 사용하십시오.
  • SQL 경로를 변경하십시오.

sqlcode : -476

sqlstate : 42725

 

SQL0478N
object-type1에 종속되는 object-type2 유형의 오브젝트 object-name이(가) 있기 때문에 오브젝트 유형 object-type1에 대한 DROP 또는 REVOKE를 처리할 수 없습니다.
설명:

이 object-type1에 대한 종속성이 있으므로 요청된 DROP 또는 REVOKE를 처리할 수 없습니다. 유형object-type2(예: 오브젝트 object-name)의 오브젝트로 정의된 제한 종속성이 있습니다.

간접적으로 종속될 수도 있습니다. 즉, 이름 지정된 오브젝트가 삭제 중이거나 REVOKE의 영향을 받는 오브젝트에 종속되는 다른 오브젝트에 종속됩니다.

예:

  • 함수 F1이 함수 F2의 소스인 경우
  • 뷰 V1이 F1을 사용하여 정의된 경우
  • F2에 대한 F1의 직접 종속성 및 F2에 대한 V1의 간접 종속성으로 인해 F2 삭제 시도가 실패하는 경우
사용자 응답:

이 오브젝트에 대한 종속성을 제거한 후 요청을 다시 발행하십시오.

sqlcode : -478

sqlstate : 42893

 

SQL0480N
프로시저 procedure-name이(가) 호출되지 않았습니다.
설명:

ASSOCIATE LOCATORS문에 지정된 프로시저가 응용프로그램 프로세스 내에서 호출되지 않았거나, 명령문에 앞서 명시적 또는 암시적 커미트가 발생했습니다.

사용자 응답:

CALL문에 프로시저 이름을 지정하는 데 사용된 정확한 구문이 ASSOCIATE LOCATORS문과 같도록 명령문을 정정하십시오. 규정되지 않은 이름을 사용하여 프로시저를 호출하는 경우, 한 부분의 이름을 다른 명령문에서도 사용해야 합니다. 명령문을 다시 발행하십시오.

sqlcode : -0480

sqlstate : 51030

 

SQL0481N
GROUP BY절에서 element-1이(가) element-2 내에 중첩되어 있습니다.
설명:

다음의 중첩 유형은 GROUP BY절에서 허용되지 않습니다.

  • CUBE, ROLLUP 또는 GEL 내에서 CUBE
  • CUBE, ROLLUP 또는 GEL 내에서 ROLLUP
  • CUBE, ROLLUP 또는 GEL 내에서 ()
  • GROUPING SET, CUBE, ROLLUP 또는 GEL 내에서 GROUPING SET

여기서 GEL은 GROUP BY절의 구문 다이어그램에서 그룹화 표현식 목록으로 표시된 요소를 나타냅니다.

일부 인스턴스에서는 element 2에 대해 값 『---』가 표시됩니다. 이 경우, 『---』는 CUBE, ROLLUP, GROUPING SET 또는 GEL 중 하나를 나타냅니다.

명령문을 처리할 수 없습니다.

사용자 응답:

GROUP BY절을 수정하여 중첩을 제거하십시오.

sqlcode : -481

sqlstate : 428B0

 

SQL0483N
사용자 정의 함수(UDF) function-name 명령문에 대한 CREATE에서 매개변수 수가 SOURCE 함수의 매개변수 수와 일치하지 않습니다.
설명:

다른 함수에서 전래된 사용자 정의 함수(UDF) function-name을(를) CREATE하려고 했습니다. 다음 상황 중 하나가 발견되었습니다.

  • SOURCE절이 소스 함수를 식별하기 위해 함수 이름(입력 매개변수 목록)을 사용하며, 목록의 유형 수가 작성 중인 함수의 매개변수 수와 다릅니다.
  • SOURCE절이 소스 함수를 식별하기 위해 다른 구문을 사용하며, 해당 함수의 유형 수가 작성 중인 함수의 매개변수 수와 다릅니다.
사용자 응답:

SOURCE 함수와 작성 중인 함수의 매개변수 수는 동일해야 합니다. 다음 작업을 위해 SOURCE 함수의 ID를 변경해야 합니다.

  • 입력 매개변수 목록을 정정합니다.
  • 적절한 함수를 식별하도록 함수 이름 또는 함수 특정 이름을 정정합니다.

또한 올바른 함수 결정을 위해 함수 경로 이름을 수정해야 할 수도 있습니다.

sqlcode : -483

sqlstate : 42885

 

SQL0486N
BOOLEAN 데이터 유형은 현재 내부적으로만 지원됩니다.
설명:

명령문에서 하나 이상의 데이터 유형이 BOOLEAN입니다. 이것은 현재의 DB2 버전에서 지원되지 않습니다.

사용자 응답:

데이터 유형을 변경한 다음, 명령문을 다시 제출하십시오.

sqlcode : -486

sqlstate : 42991

 

SQL0487N
루틴 routine-name(특정 이름 specific-name)이(가) SQL문을 실행하려고 했습니다.
설명:

루틴 본문을 구현하는 데 사용되는 프로그램은 SQL문을 실행할 수 없습니다. 이 루틴 routine-name(특정 이름 specific-name)은(는) SQL문을 포함하거나 SYSPROC.ADMIN_CMD 프로시저와 같은 SQL문을 사용하는 프로시저를 호출합니다.

사용자 응답:

모든 SQL문을 제거한 다음, 프로그램을 다시 컴파일하십시오. 루틴을 정의하는 명령문에 지정된 대로 허용되는 SQL의 레벨을 조사하십시오.

sqlcode : -487

sqlstate : 38001

 

SQL0489N
SELECT 또는 VALUES 목록 항목의 함수 function-name이(가) BOOLEAN 결과를 생성했습니다.
설명:

부울 결과를 리턴한 함수 function-name은(는) 술어로 사용되도록 정의되어 있습니다. 결과는 선택 목록에서 유효하지 않습니다.

명령문을 처리할 수 없습니다.

사용자 응답:

함수 이름을 정정하거나 함수의 사용을 제거하십시오.

sqlcode : -489

sqlstate : 42844

 

SQL0490N
SQL문 또는 명령에 직접 지정된 숫자 number이(가) 이 컨텍스트에서 허용되는 값의 범위를 벗어납니다( minval, maxval).
설명:

컨텍스트에서 유효하지 않은 숫자( number)가 지정되었습니다. 이 컨텍스트에서 허용되는 최소값은minval입니다. 이 컨텍스트에서 허용되는 최대값은 maxval입니다. n은 minval과(와) maxval(으)로 지정된 범위 내에 있어야 합니다( minval =< n => maxval).

테이블 스페이스를 작성 또는 변경하는 경우 테이블 스페이스의 페이지 크기에 따라 최소 및 최대값이 다를 수 있습니다. 테이블 스페이스 한계에 대한 자세한 사항은 SQL 참조서를 참조하십시오.

사용자 응답:

명령문 또는 명령에서 값 n을 올바른 값으로 변경하십시오.

sqlcode : -490

sqlstate : 428B7

 

SQL0491N
루틴 routine-name의 정의에 RETURNS절과, EXTERNAL절(기타 필수 키워드), RETURN문 또는 SOURCE절 중 하나가 있어야 합니다.
설명:

필수 절이 루틴 routine-name의 정의에서 누락되었습니다. EXTERNAL을 지정하면, LANGUAGE, PARAMETER STYLE, DETERMINISTIC 또는 NOT DETERMINISTIC, EXTERNAL ACTION 또는 NO EXTERNAL ACTION절 중 하나도 지정해야 합니다.

사용자 응답:

누락된 절을 추가한 다음, 다시 시도하십시오.

sqlcode : -491

sqlstate : 42601

 

SQL0492N
사용자 정의 함수(UDF) function-name의 CREATE에서 매개변수 번호 number에 문제가 있습니다. SOURCE 함수와 일치되지 않을 수 있습니다.
설명:

함수 function-name의 위치 number에 있는 매개변수에 오류가 있거나 CREATE를 수행할 수 없습니다. 소스 함수의 위치 number에 있는 매개변수는 작성 중인 함수의 해당 매개변수로 캐스트할 수 없습니다.

사용자 응답:

가능한 정정 조치는 다음과 같습니다.

  • 다른 소스 함수를 식별하십시오.
  • 작성 중인 함수의 매개변수 데이터 유형을 변경하여, 소스 함수의 데이터 유형이 이 데이터 유형으로 캐스트될 수 있도록 하십시오.

sqlcode : -492

sqlstate : 42879

 

SQL0493N
루틴 routine-name(특정 이름 specific-name)이(가) 구문적으로 또는 수치적으로 유효하지 않은 날짜, 시간 또는 시간소인을 리턴했습니다.
설명:

사용자 정의 함수(UDF) 또는 메소드 routine-name(특정 이름 specific-name)의 내용이 유효하지 않은 날짜, 시간 또는 시간소인 값을 리턴했습니다.

구문적으로 유효하지 않은 날짜 값의 예로는 '1994-12*25'가 있습니다. '*'는 '.-'이어야 합니다. 수치적으로 유효하지 않은 값의 예로는 '11.71.22'가 있습니다. 시간에 71분은 없습니다.

사용자 응답:

루틴을 수정해야 합니다. DBA나 루틴 작성자에게 문의하십시오.

sqlcode : -493

sqlstate : 22007

 

SQL0494W
결과 세트 수가 로케이터 수보다 큽니다.
설명:

ASSOCIATE LOCATORS문에서 지정한 결과 세트 로케이터 수가 스토어드 프로시저에서 리턴하는 결과 세트 수보다 작습니다. 첫 번째 『n』 결과 세트 로케이터 값이 리턴됩니다. 여기서, 『n』은 SQL문에 지정한 결과 세트 로케이터 변수의 수입니다.

SQL문이 성공적이었습니다.

사용자 응답:

SQL문에서 지정한 결과 세트 로케이터 변수의 수를 늘리십시오.

sqlcode : +494

sqlstate : 01614

 

SQL0495N
비용 범주 cost-category에 있는 estimate-amount1 프로세서 초( estimate-amount2 서비스 장치)의 계산된 프로세서 비용이 limit-amount 서비스 장치의 자원 제한 오류 임계값을 초과합니다.
설명:

동적 INSERT, UPDATE, DELETE 또는 SELECT SQL 명령문의 준비로 계산 비용이 자원 제한 스펙 테이블(RLST)에 지정된 오류 임계값을 초과했습니다.

이 오류는 DB2의 비용 범주 값이 "B"이고, RLST의 RLF_CATEGORY_B 컬럼에 지정된 디폴트 조치가 오류를 발행하는 것일 경우에도 발행됩니다.

estimate_amount1
준비된 INSERT, UPDATE, DELETE 또는 SELECT문을 실행할 경우, 예상 비용(프로세서 초 단위)
estimate_amount2
준비된 INSERT, UPDATE, DELETE 또는 SELECT문을 실행할 경우, 예상 비용(서비스 장치 단위)
cost-category
이 SQL문에 대한 DB2의 비용 범주. 가능한 값은 A 또는 B입니다.
limit-amount
RLST의 RLFASUERR 컬럼에 지정된 오류 임계값(서비스 장치 단위)

동적 INSERT, UPDATE, DELETE 또는 SELECT문의 준비에 실패했습니다.

사용자 응답:

비용 범주 값이 "B"이기 때문에 이 SQLCODE가 리턴된 경우, 명령문이 매개변수 표시문자를 사용하고 있거나, 참조 테이블 및 컬럼에서 일부 통계가 사용 불가능할 수도 있습니다. 관리자가 참조 테이블에서 RUNSTATS 유틸리티를 실행했는지 확인하십시오. 또한 명령문이 실행될 때 UDF가 호출되거나, 변경된 테이블에 트리거가 정의된 INSERT, UPDATE 또는 DELETE문의 경우에 그럴 수도 있습니다. 이 SQL문이 비용 범주 "B"에 포함된 이유를 알아내려면, 이 명령문의 DSN_STATEMNT_TABLE 또는 IFCID 22 레코드를 점검하십시오. 프로그램을 변경할 수 없거나 통계를 가져올 수 없는 경우, RLST의 RLF_CATEGORY_B 컬럼 값을 명령문의 실행을 허용하는 "Y"로 변경하거나 오류 대신 경고를 리턴하는 "W"로 변경하도록 관리자에게 요청하십시오.

프로세서 자원을 너무 많이 소모하는 SQL문으로 인해 경고가 발생한 경우, 더 효율적으로 수행하도록 명령문을 다시 작성해 보십시오. 다른 방법으로, 관리자에게 RLST의 오류 임계값을 늘리도록 요청할 수 있습니다.

sqlcode : -495

sqlstate : 57051

 

SQL0499N
커서 cursor-name이(가) 프로시저 procedure-name의 이 결과 세트나 다른 결과 세트에 이미 지정되어 있습니다.
설명:

결과 세트에 하나의 커서를 지정하려고 했으나, 프로시저 procedure-name에 여러 개의 커서가 할당되었습니다.

사용자 응답:

목표 결과 세트가 이전에 커서에 지정되었는지 알아보십시오. 프로시저 procedure-name에 여러 개의 커서가 할당된 경우, 스토어드 프로시저의 결과 세트를 처리하는 데 하나의 커서만 사용되는지 확인하십시오.

sqlcode : -499

sqlstate : 24516

 

SQL0801N 0으로 나누려고 했습니다.

원인: 컬럼 함수 또는 산술식의 처리 결과로 0으로 나눔이 발생했습니다.

명령을 처리할 수 없습니다. INSERT, UPDATE 또는 DELETE문의 경우, 삽입이나 갱신을 수행할 수 없습니다.

조치: SQL문을 조사하여 문제의 원인을 판별하십시오. 문제가 자료에 관련된 것이면, 오류가 발생했을 때 처리된 자료를 조사해야 합니다. 이들 디렉토리오브젝트의 형식에 대해서는 

SQL 참조서

를 참조하십시오.

DataJoiner 사용자: SQL문을 조사하여 문제의 원인을 알아 내십시오.문제가 자료에 관련된 것이면, 오류가 발생할 때 해당 자료 소스에서 처리 중이던 자료를 조사하십시오.

sqlcode: -801

sqlstate: 22012



SQL0802N 산술 오버플로우 또는 기타 산술 예외가 발생했습니다.

원인: 컬럼 함수 또는 산술식 처리 결 과 산술 오버플로우가 발생했습니다.

명령을 처리할 수 없습니다. INSERT, UPDATE 또는 DELETE문의 경우, 삽입이나 갱신을 수행할 수 없습니다.

조치: SQL문을 조사하여 문제의 원인을 판별하십시오.문제가 자료에 관련된 것이면, 오류가 발생했을 때 처리된 자료를 조사해야 합니다. 이들 디렉토리오브젝트의 형식에 대해서는 

SQL 참조서

를 참조하십시오.

DataJoiner 사용자: SQL문을 조사하여 문제의 원인을 알아 내십시오.문제가 자료에 관련된 것이면, 오류가 발생할 때 해당 자료 소스에서 처리 중이던 자료를 조사하십시오.유효한 자료 유형 범위를 알아내려면 그 자료 소스에 대해 해당 SQL 참조서를 참조하십시오.

sqlcode: -802

sqlstate: 22003



SQL0803N INSERT문, UPDATE문 또

는 DELETE문에 의해 일어난 외부 키 갱신에서 하나 이상의 값

이 기본 키, 고유 제한조건 또는 고유 색인을 가진 테이블에 대

해 중복 행을 산출하므로 유효하

지 않습니다.

원인: INSERT 또는 UPDATE 오브젝트 테이블이 특정 컬럼 또는 컬럼의 그룹 내에 유일한 값을 가지기 위해, 하나 이상의 UNIQUE 색인에 의해 제한을 받습니다.

또는 모 테이블(parent table)에 대한 DELETE문이 특정 컬럼이나 컬럼 그룹에 고유한 값을 가질 하나 이상의 UNIQUE 색인에 의해 제한되는 종속 테이블에서 외부 키의 갱신을 일으켰습니다. 고유한 색인이 해당 테이블에 대해 정의된 기본 키 또는 고유한 제한조건을 지원하기 위해 존재할 것입니다.

요청된 삽입 또는 갱신의 완료로 컬럼 값의 중복이 초래되었습니다.

뷰가 INSERT 또는 UPDATE문의 오브젝트이면, 이는 제한된 뷰가 정의되는 테이블입니다.

명령을 처리할 수 없습니다. 테이블이 변경되지 않은 상태로 있습니다.

조치: 오브젝트 테이블에 정의된 모든 UNIQUE 색인에 대한 정의를 조사하여, 이러한 색인이 고유성 제한조건을 야기하는지 판별하십시오.

UPDATE문의 경우, 지정한 조작이 그러한 고유성 제한조건으로 일관성이 없는 상태에 있는지 확인하십시오.이것이 오류를 표시하지 않으면, 오브젝트 테이블 내용을 조사하여 문제의 원인을 판별하십시오.

INSERT문의 경우, 오브젝트 테이블 내용을 조사하여 지정된 값목록 내의 어떤 값이 제한조건을 위반하는지 판별하십시오.또는 INSERT문에 부속조회가 들어 있으면, 그 부속조회에 의해 언급된 오브젝트 테이블 내용이 문제의 원인을 판별할 수 있도록 오브젝트 테이블 내용과 일치해야 합니다.

DELETE문의 경우, 규칙 ON DELETE SET NULL로 정의된 외부 키에서 고유제한조건에 대한 종속 테이블을 검토하십시오. 이 테이블에 대한 컬럼에 이미 널(NULL)이 있으므로 이러한 하나의 테이블에는 널(NULL)로 설정될 수 없는 고유 색인에 외부 키 컬럼이 있습니다.

DataJoiner 사용자: 요청에 실패한 자료 소스로 문제를 분리하고(SQL문 처리에 실패한 자료 소스를 알아 내려면 

문제점 판별 안내서

 참조) 색인 정의와 앞에서 나열한 상태에 대한 자료를 조사하십시오.

sqlcode: -803

sqlstate: 23505



SQL0804N 현재 요청에 대한 응용 프로그램 입력 매개변수가 유효하지않습니다. 이유 코드 "". SQLDA에서 호스트 변수나 SQLVAR가 유효하지 않으면 호스트 변수/SQLVAR 번호 = "", SQLTYPE = "", SQLLEN = "", 호스트 변수/SQLVAR 유형 = "<INPUT_OR_OUTPUT>"입니다.

원인: 현재 요청을 처리하는 중에 오류가 발생했습니다.

  • 응용 프로그램 프로그래머가 사전 처리 컴파일러(precompiler)의 출력을 수정했거나 다른 방법으로 호출 매개변수 목록을 겹쳐쓴 경우, 사전 처리 컴파일러에 의해 작성된 호출 매개변수 목록이 틀릴 수 있습니다.
  • SQL문의 SQLDA나 호스트 변수(들)가 유효하지 않습니다.
  • 작성된 요청이 지원되지 않거나 컨텍스트에서 벗어납니다.

이유 코드는 다음과 같이 해석됩니다.

100
작성된 요청이 지원되지 않거나 컨텍스트에서 벗어납니다.
101
SQLDA.SQLN이 SQLDA.SQLD 보다 작습니다.
102
SQLVAR.SQLTYPE이 유효하지 않습니다.
103
SQLVAR.SQLLEN 또는 SQLVAR2.SQLLONGLEN에 지정된 길이가 SQLVAR.SQLTYPE에서 제공된 SQL 유형에 대해 틀립니다.
104
대형 오브젝트(Large Object) SQLVAR이 존재하지만, SQLDA.SQLDAID의 SQLDOUBLED 필드가 '2'로 설정되지 않습니다.
105
2바이트 문자 대형 오브젝트가 SQLVAR2.SQLDATALEN 포인터로 지정된 홀수 값을 갖고 있습니다(이것은 DBCLOB의 경우에도, 항상 바이트 측면임).
106
SQLDATA 포인터가 유효하지 않거나 불충분한 저장영역을 가리킵니다.
107
SQLIND 포인터가 유효하지 않거나 불충분한 저장영역을 가리킵니다.
108
SQLDATALEN 포인터가 유효하지 않거나 불충분한 저장영역을 가리킵니다.
109
현재 SQL문에 대해 특정 개수의 입력 호스트 변수/SQLVARS가 예상됩니다.
110
LOB 위치 지정 값이 호환 가능한 유형의 LOB와 연관이 없습니다.
111
LOB가 SQLVAR의 SQLTYPE에 의해 지정되지만, 두 번째 SQLVAR이 널 (NULL)입니다.

호스트 변수가 있는 SQL문에서, 호스트 변수 번호를 사용하여 명령문(또는 복합 SQL의 경우 부속 명령문)의 시작에서부터 계산하여 유효하지 않은 변수를 찾으십시오. SQLDA를 사용하는 명령문의 경우, SQLVAR 번호는 유효하지 않은 SQLVAR을 찾는 데 사용됩니다. 입력 SQLDA의 경우, 입력 호스트 변수나 SQLVAR만 계산하십시오. 출력에 대해서도 마찬가지입니다. 이 번호는 1부터 시작한다는 것을 유의하십시오.

명령을 처리할 수 없습니다.

조치: 응용 프로그램의 오류를 조사하십시오. 프로그래머는 사전 처리 컴파일러(precompliler) 출력을 수정할 수 없음에 유의하십시오.

sqlcode: -804

sqlstate: 07002



SQL0805N 패키지 ""이 없었습니다.

원인: 이 메세지(SQLCODE)의 가능한 원인은 다음과 같습니다.

  • 지정한 패키지 또는 프로그램이 데이타베이스에서 정의되지않았습니다.
  • 프로그램이 바인드되지 않았거나 삭제(drop)되었습니다.
  • 수행되는 응용 프로그램은 데이타베이스에 바인드되지 않습니다.
  • DB2 유틸리티나 CLI 응용 프로그램의 수행을 시도할 경우, DB2 유틸리티를 데이타베이스에 리바인드해야 할 것입니다.

명령을 처리할 수 없습니다.

조치: 올바른 패키지명을 지정하거나 프로그램을 바인드하십시오. 수행하고 있는 응용 프로그램이 데이타베이스에 바인드되지 않은 경우, 필요한 바인드를 수행하도록 데이타베이스 관리자에게 문의하십시오.

DB2 유틸리티 프로그램을 데이타베이스에 리바인드해야 할 경우, 데이타베이스에 연결된 동안 데이타베이스 관리자가 인스턴스의 bnd 서브디렉토리에서 다음의 CLP 명령 중 하나를 발행하여 이를 수행할 수 있습니다.

  • DB2 유틸리티의 경우 "DB2 bind @db2ubind.lst blocking all grant public".
  • CLI의 경우 "DB2 bind @db2cli.lst blocking all grant public".

DataJoiner 사용자: DataJoiner에 필요한 패키지가 적용 가능한 자료 소스에서 바인드되었음을 확인하십시오. DataJoiner가 사용하는 패키지를 자료 소스에 바인드하는 데 대한 자세한 내용은 

IBM DataJoiner Planning, Installation, and Configuration Guide

를 참조하십시오.

sqlcode: -805

sqlstate: 51002



SQL0808N CONNECT문의 의미(semantics)가 기존의 다른 연결에 함축된 의미와 일관성이 없습니다.

원인: CONNECT문은 연결이 존재하는 소스 파일과는 다른 연결 옵션 (SQLRULES, CONNECT 유형, SYNCPOINT 또는 RELEASE 유형)을 갖는 사전 처리 컴파일(precompile)된 소스 파일에서 유래합니다.

조치: 모든 소스 파일이 동일한 CONNECT 옵션을 사용하여 컴파일되도록 하거나, 그렇게 하는 것이 불가능한 경우, 첫번째 CONNECT문을 발행하기 전에 응용 프로그램프로세스에 대한 원하는 옵션을 설정하도록 SET CLIENT API를 호출하십시오.

sqlcode: -808

sqlstate: 08001



SQL0811N 스칼라 fullselect, SELECT INTO문 또는 VALUES INTO문의 결과가두 행 이상입니다.

원인: 다음 중 하나가 오류의 원인입니다.

  • 내장(embedded) SELECT INTO 또는 VALUES INTO의 실행 결과, 두 행 이상의 결과 테이블을 생성했습니다.
  • 스칼라 fullselect의 실행 결과, 두 행 이상의 결과 테이블을 생성했습니다.

DataJoiner 사용자: 이런 상황은 DataJoiner에 의해 또는 해당 자료 소스에 의해 발견될 수 있습니다.

명령을 처리할 수 없습니다.

조치: 명령문에 올바른 조건 스펙이 들어 있는지 확인하십시오.그런 경우, 한 행을 예상했으나, 두 개 이상의 행을 리턴하는 자료 문제점이 발생할 수 있습니다.

DataJoiner 사용자: 요청에 실패한 자료 소스로 문제를 분리하고(SQL문 처리에 실패한 자료 소스를 알아 내려면 

문제점 판별 안내서

 참조) 선택 기준과 해당 오브젝트에 대한 자료를 조사하십시오.

sqlcode: -811

sqlstate: 21000



SQL0817N SQL문이 결과적으로 금지된 갱신 조작을 수행하게 될 것이므로 이 명령문을 실행할 수 없습니다.

원인: 응용 프로그램이 결과적으로 사용자 자료나 부속시스템 카탈로그를 갱신하게 될 SQL문을 실행하려 했습니다. 이것은 다음 이유 중 하나로 인해 금지됩니다.

  • 응용 프로그램이 IMS 조회 전용 트랜잭션으로서 수행 중입니다.
  • 응용 프로그램이 2단계 확약을 지원하지 않는 원격 DBMS에서 자료를 갱신하려 하는 IMS 또는 CICS 응용 프로그램입니다.
  • 응용 프로그램이 여러 위치에서 자료를 갱신하려 하며 위치 중 하나가 2단계 확약을 지원하지 않습니다.

이 SQL문에 INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT 및 REVOKE가 포함되어 있습니다.

명령문을 실행할 수 없습니다.

조치: 응용 프로그램이 IMS 조회 전용 트랜잭션으로서 수행 중인 경우, 응용 프로그램을 수행 중인 트랜잭션의 조회 전용 상태를 변경하는 것에 대해서 알아보려면 시스템 프로그래머에게 문의하십시오.

IMS 또는 CICS 응용 프로그램이 원격 갱신을 수행할 경우, 서버 DBMS에서 국지 응용 프로그램으로서 수행되도록 이 응용 프로그램을 변경하거나 2단계 확약을 지원하도록 서버 DBMS를 업그레이드해야 합니다.

응용 프로그램이 여러 위치에서 자료를 갱신하려 할 경우, 응용 프로그램을 변경하거나 2단계 확약을 지원하도록 관련되는 모든 DBMS를 업그레이드해야 합니다.

sqlcode: -817

sqlstate: 25000



SQL0818N 시각(timestamp) 상충이 발생했습니다.

원인: 사전 처리 컴파일(precompile)시 사전 처리 컴파일러(precompiler)에 의해 생성된 시각이 바인드시 패키지와 함께 저장된 시각과 동일하지 않습니다.

이 문제의 원인은 다음과 같습니다.

  • 응용 프로그램 바인드를 수행하지 않고, 사전 처리 컴파일(precompile), 컴파일 및 링크했습니다.
  • 프로그램 컴파일과 링크를 수행하지 않고, 사전 처리 컴파일(precompile) 및 바인드했습니다.
  • 응용 프로그램 모듈에 링크된 오브젝트 모듈을 생성한 사전 처리컴파일이 아닌, 프로그램의 다른 사전 처리 컴파일(precompile)로부터의 바인드 파일을 사용하여, 응용 프로그램을 바인드했습니다.
  • 기존 계획과 동일한 이름으로 응용 프로그램을 바인드하고, 기존(old) 응용 프로그램을 실행했습니다.

DataJoiner 사용자: 앞에서 나열한 이유 외에도, 적용 가능한 모든 자료 소스에 DataJoiner 패키지가 바인드되지 않은 것으로 인해 문제가 발생할 수도 있습니다.

명령을 처리할 수 없습니다.

조치: 오브젝트 모듈과 일치하는 프로그램에 대한 바인드파일을 사용하여 응용 프로그램을 다시 바인드하십시오.또는 데이타베이스에 저장된 패키지에 대응되는 프로그램을 실행하십시오.

샘플 데이타베이스를 설치 중이면, 이 메세지의 번호와 텍스트를 기록한 후 기술 서비스 담당자에게 문의하십시오.

DataJoiner 사용자: 앞에 나열된 조치 이외에, DataJoiner에 필요한 패키지가 적용 가능한 자료 소스에서 바인드되었음을 확인하십시오. DataJoiner가 사용하는 패키지를 자료 소스에 바인드하는 데 대한 자세한 내용은 

IBM DataJoiner Planning, Installation, and Configuration Guide

를 참조하십시오.

sqlcode: -818

sqlstate: 51003



SQL0822N SQLDA에 유효하지 않은 자료 주소 또는 표시기 변수 주소가 들어 있습니다.

원인: 응용 프로그램이 유효하지 않은 주소를 SQLDA에 위치시켰습니다.

명령을 처리할 수 없습니다.

조치: 응용 프로그램을 정정하여, SQLDA에 유효한 주소를 위치시키십시오.

sqlcode: -822

sqlstate: 51004



SQL0840N SELECT 목록에서 너무 많은 항목들이 리턴되었습니다.

원인: SELECT 목록에 리턴된 항목의 수가 최대 허용치를 초과했습니다.

SELECT 목록(공통 테이블 표현식은 제외)에 대한 최대값 은 1012입니다. 공통 테이블 표현식의 SELECT 목록에 대한 최대값은 5000입니다.

명령을 처리할 수 없습니다.

조치: 모든 정보가 실제로 필요한지 판별하십시오. ( SELECT * from A, B, C라는 SQL문에서 SELECT list *에 의해 리턴된 항목의 수는 모두 3개의테이블에 있는 컬럼 수의 합계임에 유의하십시오.) 가능하면, SQL문을 다시 작성하여, 필요한 항목의 정보만 리턴되도록 하십시오.모든 정보가 필요하면, SQL문을 두 개 이상의 명령문으로 분리하십시오.

sqlcode: -840

sqlstate: 54004



SQL0842N 서버 ""으로의 연결이 이미 존재합니다.

원인: SQLRULES(STD)가 유효하고, CONNECT문은 기존의 SQL 연결을 식별합니다.

조치: 정정 방법은 오류에 따라 달라집니다.

  • 서버가 의도한 이름이 아닌 경우, 이를 정정하십시오.
  • SQLRULES(STD)가 유효하고, CONNECT문이 기존의 SQL 연결을 식별하는 경우, CONNECT를 SET CONNECTION으로 대체하거나, 옵션을 SQLRULES(DB2)로 변경하십시오.

응용 프로그램에 있는 오류를 정정한 다음, 다시 시도하십시오.

sqlcode: -842

sqlstate: 08002



SQL0843N 서버명으로 기존 연결을 지정하지 않습니다.

원인: 명령문, 명령 또는 API에 응용 프로그램 프로세스의 기존 SQL 연결을 식별하지 않는 서버명을 지정했습니다.

이것은 다음 명령문을 사용하여 이루어졌을 것입니다.

  • SET CONNECTION문
  • RELEASE문
  • DISCONNECT문
  • SET 또는 QUERY CLIENT INFORMATION

조치: 정정 방법은 오류에 따라 달라집니다.

  • 서버가 의도한 이름이 아닌 경우, 이를 정정하십시오.
  • 서버에 잘 연결되어 있고 연결이 현재 상태 또는 유휴(dormant) 상태에 있는지 확인한 후 해당 연결 요청을 발행하십시오.

응용 프로그램에 있는 오류를 정정한 다음, 다시 시도하십시오.

sqlcode: -843

sqlstate: 08003



SQL0859N 트랜잭션 관리 프로그램 데이타베이스에 대한 액세스가 SQLCODE ""로 실패했습니다.

원인: 응용 프로그램은 SYNCPOINT(TWOPHASE)로 사전 처리 컴파일(precompile)되었고, 2단계 확약을 조정하기 위해 트랜잭션 관리 프로그램 데이타베이스가 필요합니다. 트랜잭션 관리 프로그램 데이타베이스를 사용할 수 없는 이유는 다음과 같습니다.

  • 작성되지 않았습니다.
  • 데이타베이스 관리 프로그램 구성 파일의 tm_database 필드가 데이타베이스명으로 갱신되지 않았고, 활성화되지 않았습니다.
  • 데이타베이스는 존재하나, 데이타베이스에 대한 통신이 실패했습니다.

조치: 가능한 조치는 다음과 같습니다.

  • 이 메세지로 리턴된 SQLCODE를 참조한 후 그 SQLCODE에 대한 해당 조치를 수행하십시오.
  • tm_database가 존재하는지 확인하십시오. 존재하지 않는 경우, 새로운 데이타베이스를 작성하거나, 현재 존재하는 데이타베이스를 선택하여 TM 데이타베이스로 사용하십시오.디스크 저장영역에 심각한 제한조건이 없는 경우, 별도의 데이타베이스를 작성하는 것이 좋습니다.
  • 아직 완료되지 않은 경우, 필드 tm_database를 사용하여 TM 데이타베이스에 대한 데이타베이스 관리 프로그램 구성을 갱신하십시오.
  • tm_database에 대한 연결이 가능한 지 확인하십시오. 예를 들면, 명령행 처리기를 사용하여 연결을 시도해 보십시오.
  • 선택한 tm_database가 DB2 Connect를 통해 액세스된 데이타베이스가 아니라는 것을 확인하십시오.

sqlcode: -859

sqlstate: 08502



SQL0863W 성공적인 연결이 이루어졌으나 1바이트 문자만을 사용해야 합니다.

원인: 서버 데이타베이스와 클라이언트 응용 프로그램이 다른 언어 유형에 대한 코드페이지를 사용중이며 7비트 ASCII 범위 밖의 어떤 문자도 허용되지 않습니다. (모든 코드페이지에서 7비트 ASCII 범위 내의문자만 허용됩니다.) 예를 들면, 일어와 Latin-1 코드페이지 사이의 연결이 있을 수도 있지만 일어 문자 중 어느 것도 Latin-1 코드 페이지에서는 사용 불가능하므로 이런 문자들은 모두 사용하지 않아야 합니다(영문자 사용에는 문제가 없습니다).

DataJoiner 사용자: 가능한 이유는 다음과 같습니다.

  • DataJoiner 데이타베이스는 단일 바이트와 복수 바이트 문자를 모두 지원하지만 데이타베이스 클라이언트 시스템은 단일 바이트 문자만 지원합니다.
  • 자료 소스는 단일 바이트와 복수 바이트 문자를 모두 지원하지만 DataJoiner 시스템은 단일 바이트 문자만 지원합니다.

조치: 응용 프로그램과 데이타베이스 코드페이지 사이에 공통되지 않은 문자를 사용하는 SQL문이나 명령을 제출하지 마십시오.

DataJoiner 사용자: 클라이언트 시스템, DataJoiner 시스템 및 자료 소스 사이에 공통되지 않은 문자를 사용하는 SQL문이나 명령을 제출하지 마십시오.

sqlcode: +863

sqlstate: 01539



SQL0865N 유효하지 않은 tm_database 값.

원인: 데이타베이스 관리 프로그램에 

tm_database

로 선택된 값이 유효하지 않습니다. 데이타베이스가 DB2 V2.1 또는 그 이후 버전이어야 하며 DRDA 프로토콜을 통해 (즉, DB2 Connect를 통해) 액세스된 데이타베이스일 수 없습니다.

명령문을 실행할 수 없습니다.

조치:

  1. 데이타베이스 관리 프로그램 구성을 갱신하여 tm_database parameter에 유효한 데이타베이스를 지정하십시오.
  2. db2stop과 db2start를 발행하여 변경내용을 적용하십시오.

sqlcode: -865

sqlstate: 08001



SQL0866N 연결 경로 재지정이 실패했습니다. 이유 코드: ""

원인: 데이타베이스에 대한 디렉토리 카탈로그화 작업 결과 지원되지 않는 방식으로 연결 경로가 재지정되었습니다.

가능한 이유 코드에는 다음이 있습니다.

01
데이타베이스 연결에는 서버간에 두 번 이상의 경로 재지정이 포함되었으며, 오직 하나의 연결 경로 재지정만이 지원됩니다.
02
DB2 클라이언트 또는 서버, 그리고 버전 1 클라이언트 또는 서버를 연결하려 했습니다. 버전 1 클라이언트 또는 서버로는 경로 재지정이 지원되지 않기 때문에 이러한 시도가 실패했습니다.

조치: 이유 코드별로 조치는 다음과 같습니다.

01
데이타베이스를 다시 카탈로그화하여 연결 경로에 있는 다른 서버로 경로 재지정되는 서버가 두 개 이상 있지 않게 하십시오.
02
데이타베이스를 다시 카탈로그화하여 연결 경로를 재지정하는 중간 서버가 없도록 하십시오.

sqlcode: -866

sqlstate: 08001



SQL0868N 이미 연결되어 있는 서버에 USER/USING 절을 사용하는 CONNECT절을 시도했습니다.

원인: 서버로의 현재 또는 고정된 연결이 존재하고, 이 USER/USING절을 사용하는 서버로의 CONNECT가 유효하지 않습니다.

조치: 가능한 조치는 다음과 같습니다.

  • SET CONNECTION문을 사용하여 현재의 DORMANT 연결로 연결하십시오.
  • SQLRULES(DB2)가 응용 프로그램에 의해 사용중인 경우, USER/USING 없이 CONNECT문을 사용하십시오.
  • 기존의 작업 단위를 완료한 후, 연결을 해제하고, USER/USING을 사용하여 재연결하십시오.

sqlcode: -868

sqlstate: 51022

 

 

'[ Developer ] > DB2' 카테고리의 다른 글

[DB2] DB2 vs Oracle 차이점  (0) 2018.11.07