Memory Drive

Computer_IT/DBMS +30
반응형

컬럼 사이즈 변경시 주의점

컬럼 사이즈를 변경할때 관련된 view가 있으면 view를 drop 후에 새로 생성해야 함.
view개수가 많을수록 번거러움은 커진다.

  1. drop view ...
  2. alter table ... alter column ...
  3. create view

파일 시스템 Full

데이터가 적재되는 파일 시스템이 100% 도달해버리면 PostgreSQL 프로세스가 내려간다. (종료됨)

vacuum 관리

vacuum이 불이의 이유로 수행이 안될경우 db자체가 정지하며 재생성 작업을 해주어야 한다.

반응형

반응형

테스트 버전

PostgreSQL 10 / 11

Function 파일로 추출

형식 : psql 접속정보 -c "\sf 함수명" > function_name.sql

예제명령 : psql -h 127.0.0.1 -p 1234 - U userid -d db_name  > function_name.sql

Function 수정

vi function_name.sql

Function 적용

예제명령 : psql -h 127.0.0.1 -p 1234 - U hello -d db_name < function_name.sql

반응형

반응형


DB의 테이블명이 DATA_20180801 형태로 되어있을경우 날짜가 포함된 테이블만 조회하는 정규식


SELECT * FROM ( 

        SELECT TABLE_NAME, REGEXP_SUBSTR( TABLE_NAME, '\d{4}\d{2}\d{2}') YYYYMMDD

        FROM USER_TABLES

)

WHERE YYYYMMDD IS NOT NULL

-- AND YYYYMMDD < '20180701'


결과 


반응형

반응형

-- 테이블 COMMENT 조회

SELECT TABLE_NAME, TABLE_TYPE, COMMENTS 

FROM USER_TAB_COMMENTS

WHERE COMMENTS IS NOT NULL;


-- 컬럼별 COMMENT 조회

SELECT * 

FROM USER_COL_COMMENTS

WHERE COMMENTS IS NOT NULL;


-- 테이블별 COMMENT 쿼리문

SELECT 'COMMENT ON TABLE ' || TABLE_NAME || ' IS ''' || COMMENTS || ''';' 

FROM USER_TAB_COMMENTS

WHERE COMMENTS IS NOT NULL;

COMMENT ON TABLE TABLE_NAME IS 'COMMENTS text';


-- 컬럼별 COMMENT 쿼리문

SELECT 'COMMENT ON COLUMN ' || TABLE_NAME || '.' || COLUMN_NAME || ' IS ''' ||  COMMENTS || ''';' 

FROM USER_COL_COMMENTS 

WHERE COMMENTS IS NOT NULL;

COMMENT ON COLUMN TABLE_NAME.COLUMN_NAME IS 'COMMENTS';



반응형

반응형





DB_JDBC설정DB_JDBC설정

JDBC설정 화면




URL Format과 DriverClass 를 Ctrl+C , Ctrl+V만 해도 기본적인 DB연결 문자열은 바로 생성 가능

Class.forName("net.sourceforge.jtds.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:jtds:sqlserver://<server>:<port1433>;DatabaseName=<database>", "user", "password");







장점 : 

1. Java기반으로 제작된 프로그램

2. Java개발시 사용되는 JDBC연결을 통해 JDBC를 지원하는 모든 DB연결가능

    (지원되지 않는 DB라도 JDBC 드라이버만 있으면 기본적인 연결 및 쿼리 가능) ex) Cubrid, Tibero

3. 상용 프로그램으로 꾸준한 업데이트 지원

4. 데이터를 손쉽게 Chart로 표현 가능

5. 설치된경로\resources\profiles 에 DB별로 조회가능한 Dictionary 조회 쿼리 존재

6. DB별로 특성화된 구조로 표현




단점 :

1. 대량의 데이터 Fetch 시에 Memory 점유율(Java메모리)이 높음

2. 무료로 사용가능하나 무료버전은 많은 기능이 제약됨

3. LongRun 쿼리 Stop이 불가할땐 재시작 해야함

4. 범용성을 지니다 보니 전문적인 admin 부분에선 약함

5. 초반 설치시 Editor에서 한글을 사용하기 위해선 한글 Font 지정 필요

   Tools->Tool Properties -> [General] -> General -> Apperance -> Fonts

6. Pro버전 라이센스가 비쌈-1copy $179 (여러 DB를 사용해야 하는 직업을 가진 사람은 적당한 툴)



지원 기능 설명 : http://www.dbvis.com/features/

다운로드 링크 : http://www.dbvis.com/download/


반응형

'Computer_IT > DBMS' 카테고리의 다른 글

Oracle 테이블에서 날짜형식의 테이블만 추출하는 정규표현식  (0) 2018.08.08
Oracle] Table and Column Comments extract query  (0) 2018.08.08
h2 database utc time select  (0) 2013.05.21
DB2 - SNAPSHOT  (0) 2010.10.29
DB2  (0) 2010.10.28

반응형

select  

DATEDIFF('SECOND', PARSEDATETIME('19700101000000', 'yyyyMMddHHmmss'), DATETIME_COLUMN   )

 FROM TABLE_NAME



result


1369144930    (original date : 2013-05-21 14:02:10)

반응형

'Computer_IT > DBMS' 카테고리의 다른 글

Oracle] Table and Column Comments extract query  (0) 2018.08.08
사용하기 쉬운 쿼리툴 _ DbVisualizer 장단점  (0) 2015.06.17
DB2 - SNAPSHOT  (0) 2010.10.29
DB2  (0) 2010.10.28
[DBMS] DB2의 SQL 한계  (0) 2008.11.10

DB2 - SNAPSHOT

Computer_IT/DBMS2010. 10. 29. 13:59
반응형


C:\>db2 get monitor switches

            모니터 기록 스위치

DB 파티션 번호 0의 전환 목록
버퍼 풀 활동 정보(BUFFERPOOL) = OFF
잠금 정보(LOCK) = OFF
정렬 정보(SORT) = OFF
SQL문 정보(STATEMENT) = OFF
테이블 활동 정보(TABLE) = OFF
시간소인 정보 가져오기(TIMESTAMP) = ON  2010-10-28 15:46:08.100029
작업 단위 정보(UOW) = OFF

 

C:\>db2 update monitor switches using SORT ON
DB20000I  UPDATE MONITOR SWITCHES 명령이 완료되었습니다.

C:\>db2 get monitor switches

            모니터 기록 스위치

DB 파티션 번호 0의 전환 목록
버퍼 풀 활동 정보(BUFFERPOOL) = OFF
잠금 정보(LOCK) = OFF
정렬 정보(SORT) = ON  2010-10-28 20:18:19.307657
SQL문 정보(STATEMENT) = OFF
테이블 활동 정보(TABLE) = OFF
시간소인 정보 가져오기(TIMESTAMP) = ON  2010-10-28 15:46:08.100029
작업 단위 정보(UOW) = OFF



C:\>db2 update monitor switches using BUFFERPOOL ON
DB20000I  UPDATE MONITOR SWITCHES 명령이 완료되었습니다.

C:\>db2 get snapshot for database on sample

              데이터베이스 스냅샷

데이터베이스 이름 = SAMPLE
데이터베이스 경로 = C:\DB2\NODE0000\SQL00002\
입력 데이터베이스 별명 = SAMPLE
데이터베이스 상태 = 활동 중
카탈로그 데이터베이스 파티션 번호 = 0
카탈로그 네트워크 노드 이름 =
데이터베이스 서버에서 실행 중인 운영 체제 = NT
데이터베이스 위치 = 로컬
첫 번째 데이터베이스 연결 시간소인 = 2010-10-28 17:16:34.177722
최종 재설정 시간소인 =
최종 백업 시간소인 =
스냅샷 시간소인 = 2010-10-28 20:20:51.232243

자동 스토리지 경로 수 = 1
자동 스토리지 경로 = C:
      파일 시스템 ID = 145951286
      스토리지 경로 여유 스페이스(바이트) = 4546539520
      파일 시스템 사용한 스페이스(바이트) = 5977866240
      파일 시스템 총 스페이스(바이트) = 10725732352

연결에 대한 상위 워터 마크 = 6
응용프로그램 연결 수 = 135
총 2차 연결 수 = 3
현재 연결된 응용프로그램 수 = 1
db 관리 프로그램에서 현재 실행 중인 응용프로그램 수 = 0
응용프로그램과 연관된 에이전트 수 = 4
응용프로그램과 연관된 최대 에이전트 수 = 6
최대 코디네이팅 에이전트 수 = 6

현재 보유된 잠금 수 = 0
잠금 대기 수 = 0
데이터베이스의 잠금 대기 시간(밀리초) = 수집되지 않음
사용 중인 잠금 목록 메모리(바이트) = 2256
검출된 교착 상태 수 = 0
잠금 에스컬레이션 수 = 1
배타적 잠금 에스컬레이션 수 = 1
현재 잠금 대기 중인 에이전트 수 = 0
잠금 시간종료 수 = 0
인다우트(indoubt) 트랜잭션 수 = 0

할당된 총 개인용 정렬 힙 수 = 0
할당된 총 공유 정렬 힙 = 0
공유 정렬 힙 상위 워터 마크 = 57
포스트 임계값 정렬(공유 메모리) = 0
총 정렬 수 = 261
총 정렬 시간(밀리초) = 0
정렬 오버플로우 수 = 0
사용 중인 정렬 수 = 0

버퍼 풀 데이터 논리적 읽기 수 = 0
버퍼 풀 데이터 실제 읽기 수 = 0
버퍼 풀 임시 데이터 논리적 읽기 수 = 0
버퍼 풀 임시 데이터 실제 읽기 수 = 0
비동기식 풀 데이터 페이지 읽기 수 = 0
버퍼 풀 데이터 쓰기 수 = 0
비동기식 풀 데이터 페이지 쓰기 수 = 0
버퍼 풀 인덱스 논리적 읽기 수 = 0
버퍼 풀 인덱스 실제 읽기 수 = 0
버퍼 풀 임시 인덱스 논리적 읽기 수 = 0
버퍼 풀 임시 인덱스 실제 읽기 수 = 0
비동기 풀 인덱스 페이지 읽기 수 = 0
버퍼 풀 인덱스 쓰기 수 = 0
비동기식 풀 인덱스 페이지 쓰기 수 = 0
버퍼 풀 xda 논리적 읽기 수 = 0
버퍼 풀 xda 실제 읽기 수 = 0
버퍼 풀 임시 xda 논리적 읽기 수 = 0
버퍼 풀 임시 xda 실제 읽기 수 = 0
버퍼 풀 xda 쓰기 수 = 0
비동기 풀 xda 페이지 읽기 수 = 0
비동기 풀 xda 페이지 쓰기 수 = 0
전체 버퍼 풀 읽기 시간(밀리초) = 0
전체 버퍼 풀 쓰기 시간(밀리초) = 0
비동기식 읽기의 전체 경과 시간 = 0
비동기식 쓰기의 전체 경과 시간 = 0
비동기식 데이터 읽기 요청 수 = 0
비동기식 인덱스 읽기 요청수 = 0
비동기 xda 읽기 요청 수 = 0
사용 가능한 희생 버퍼 없음 = 0
LSN Gap 클리너 트리거 수 = 0
더티 페이지 스틸 클리너 트리거 수 = 0
더티 페이지 임계값 클리너 트리거 수 = 0
프리페치를 위한 대기 시간(밀리초) = 0
읽지 않은 프리페치 페이지 수 = 0
직접 읽기 수 = 0
직접 쓰기 수 = 0
직접 읽기 요청 수 = 0
직접 쓰기 요청 수 = 0
직접 읽기 경과 시간(밀리초) = 0
직접 쓰기 경과 시간(밀리초) = 0
닫힌 데이터베이스 파일 수 = 0

호스트 실행 경과 시간 = 수집되지 않음

시도된 Commit문 수 = 215
시도된 Rollback문 수 = 4
시도된 동적 명령문 수 = 4170
시도된 정적 명령문 수 = 364
실패한 명령문 조작 수 = 11
실행된 Select SQL문 수 = 1318
실행된 Xquery문 = 0
실행된 Update/Insert/Delete문 수 = 281
실행된 DDL문 수 = 34
비활성 명령문 실행기록 메모리 사용(바이트) = 0

내부 자동 리바인드 수 = 0
삭제된 내부 행 수 = 0
삽입된 내부 행 수 = 0
갱신된 내부 행 수 = 0
내부 커미트 수 = 294
내부 롤백 수 = 0
교착 상태로 인한 내부 롤백 수 = 0

삭제된 행 수 = 0
삽입된 행 수 = 36
갱신된 행 수 = 1110
선택된 행 수 = 2064
읽은 행 수 = 49111
시도된 바인드/프리컴파일 수 = 0

데이터베이스에 사용 가능한 로그 스페이스(바이트) = 19601917
데이터베이스에서 사용 중인 로그 스페이스(바이트) = 798083
사용된 최대 2차 로그 스페이스(바이트) = 0
사용된 최대 전체 로그 스페이스(바이트) = 1093149
현재 할당된 2차 로그 수 = 0
읽은 로그 페이지 수 = 0
로그 읽기 시간(sec.ns) = 0.000000004
기록된 로그 페이지 수 = 474
로그 쓰기 시간(sec.ns) = 0.000000004
숫자 쓰기 로그 IO = 370
숫자 읽기 로그 IO = 0
숫자 부분 페이지 로그 IO = 258
숫자 로그 버퍼 전체 = 25
버퍼에서 로그 데이터 찾기 = 0
복구를 위해 다시 실행할 로그(바이트) = 801203
오염된 페이지로 인한 로그 어카운트(바이트) = 799901

처음 사용 중인 로그의 파일 번호 = 0
마지막 사용 중인 로그의 파일 번호 = 2
현재 사용 중인 로그의 파일 번호 = 0
아카이브 되고 있는 로그 파일 번호 = 적용되지 않음

패키지 캐시 찾아보기 수 = 1847
패키지 캐시 삽입 수 = 205
패키지 캐시 오버플로우 수 = 0
패키지 캐시 상위 워터 마크(바이트) = 885153
응용프로그램 섹션 찾아보기 수 = 4178
응용프로그램 섹션 삽입 수 = 222

카탈로그 캐시 찾아보기 수 = 875
카탈로그 캐시 삽입 수 = 53
카탈로그 캐시 오버플로우 수 = 0
카탈로그 캐시 상위 워터 마크 = 272464

작업 스페이스 정보

 공유 상위 워터 마크 = 0
 해당 공유 오버플로우 수 = 0
 총 공유 섹션 삽입 수 = 0
 총 공유 섹션 찾아보기 수 = 0
 개인용 상위 워터 마크 = 455176
 해당 개인용 오버플로우 수 = 0
 총 개인용 섹션 삽입 수 = 222
 총 개인용 섹션 찾아보기 수 = 1493

해시 조인 수 = 117
해시 루프 수 = 0
해시 조인 오버플로우 수 = 0
작은 해시 조인 오버플로우 수 = 0
포스트 임계값 해시 조인 수(공유 메모리) = 0
활동 중인 해시 조인 수 = 0


데이터베이스의 메모리 사용:

    메모리 풀 유형 = 백업/리스토어/유틸리티 힙
       현재 크기(바이트) = 65536
       상위 워터 마크(바이트) = 196608
       구성된 크기(바이트) = 20512768

    메모리 풀 유형 = 패키지 캐시 힙
       현재 크기(바이트) = 983040
       상위 워터 마크(바이트) = 983040
       구성된 크기(바이트) = 1310720

    메모리 풀 유형 = 카탈로그 캐시 힙
       현재 크기(바이트) = 327680
       상위 워터 마크(바이트) = 327680
       구성된 크기(바이트) = 655360

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = 3
       현재 크기(바이트) = 8454144
       상위 워터 마크(바이트) = 8454144
       구성된 크기(바이트) = 8454144

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = 2
       현재 크기(바이트) = 4390912
       상위 워터 마크(바이트) = 4390912
       구성된 크기(바이트) = 4390912

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = 1
       현재 크기(바이트) = 1245184
       상위 워터 마크(바이트) = 1245184
       구성된 크기(바이트) = 1245184

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = System 32k buffer pool
       현재 크기(바이트) = 720896
       상위 워터 마크(바이트) = 720896
       구성된 크기(바이트) = 720896

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = System 16k buffer pool
       현재 크기(바이트) = 458752
       상위 워터 마크(바이트) = 458752
       구성된 크기(바이트) = 458752

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = System 8k buffer pool
       현재 크기(바이트) = 327680
       상위 워터 마크(바이트) = 327680
       구성된 크기(바이트) = 327680

    메모리 풀 유형 = 버퍼 풀 힙
       2차 ID = System 4k buffer pool
       현재 크기(바이트) = 262144
       상위 워터 마크(바이트) = 262144
       구성된 크기(바이트) = 262144

    메모리 풀 유형 = 공유 정렬 힙
       현재 크기(바이트) = 131072
       상위 워터 마크(바이트) = 327680
       구성된 크기(바이트) = 20512768

    메모리 풀 유형 = 잠금 관리 프로그램 힙
       현재 크기(바이트) = 327680
       상위 워터 마크(바이트) = 327680
       구성된 크기(바이트) = 393216

    메모리 풀 유형 = 데이터베이스 힙
       현재 크기(바이트) = 4718592
       상위 워터 마크(바이트) = 4718592
       구성된 크기(바이트) = 6225920

    메모리 풀 유형 = 기타 메모리
       현재 크기(바이트) = 131072
       상위 워터 마크(바이트) = 131072
       구성된 크기(바이트) = 20971520




db2 get dbm monitor switches  (현재 수집중인 정보)


반응형

'Computer_IT > DBMS' 카테고리의 다른 글

사용하기 쉬운 쿼리툴 _ DbVisualizer 장단점  (0) 2015.06.17
h2 database utc time select  (0) 2013.05.21
DB2  (0) 2010.10.28
[DBMS] DB2의 SQL 한계  (0) 2008.11.10
db2 db configuration 확인  (0) 2008.07.08

DB2

Computer_IT/DBMS2010. 10. 28. 17:18
반응형

C:\ibm>db2 connect to sample

   데이터베이스 연결 정보

 데이터베이스 서버 = DB2/NT 9.1.8
 SQL 권한 부여 ID = DB2ADMIN
 로컬 데이터베이스 별명 = SAMPLE


C:\ibm>db2 list tablespaces show detail

           현재 데이터베이스에 대한 테이블 스페이스

 테이블 스페이스 ID = 0
 이름 = SYSCATSPACE
 유형 = 데이터베이스 관리 스페이스
 내용 = 모든 영구 데이터. 일반 테이블 스페이스
 상태 = 0x0000
   세부사항 설명:
     정상
 전체 페이지 수 = 16384
 사용 가능한 페이지 수 = 16380
 사용된 페이지 수 = 9104
 사용 가능한 페이지 수 = 7276
 상위 워터 마크(페이지) = 9104
 페이지 크기(바이트) = 4096
 Extent 크기(페이지) = 4
 프리페치 크기(페이지) = 4
 컨테이너 수 = 1

 테이블 스페이스 ID = 1
 이름 = TEMPSPACE1
 유형 = 시스템 관리 스페이스
 내용 = 시스템 임시 데이터
 상태 = 0x0000
   세부사항 설명:
     정상
 전체 페이지 수 = 1
 사용 가능한 페이지 수 = 1
 사용된 페이지 수 = 1
 사용 가능한 페이지 수 = 적용되지 않음
 상위 워터 마크(페이지) = 적용되지 않음
 페이지 크기(바이트) = 4096
 Extent 크기(페이지) = 32
 프리페치 크기(페이지) = 32
 컨테이너 수 = 1

 테이블 스페이스 ID = 2
 이름 = USERSPACE1
 유형 = 데이터베이스 관리 스페이스
 내용 = 모든 영구 데이터. 대형 테이블 스페이스
 상태 = 0x0000
   세부사항 설명:
     정상
 전체 페이지 수 = 8192
 사용 가능한 페이지 수 = 8160
 사용된 페이지 수 = 1888
 사용 가능한 페이지 수 = 6272
 상위 워터 마크(페이지) = 1888
 페이지 크기(바이트) = 4096
 Extent 크기(페이지) = 32
 프리페치 크기(페이지) = 32
 컨테이너 수 = 1

 테이블 스페이스 ID = 3
 이름 = IBMDB2SAMPLEREL
 유형 = 데이터베이스 관리 스페이스
 내용 = 모든 영구 데이터. 대형 테이블 스페이스
 상태 = 0x0000
   세부사항 설명:
     정상
 전체 페이지 수 = 8192
 사용 가능한 페이지 수 = 8160
 사용된 페이지 수 = 608
 사용 가능한 페이지 수 = 7552
 상위 워터 마크(페이지) = 608
 페이지 크기(바이트) = 4096
 Extent 크기(페이지) = 32
 프리페치 크기(페이지) = 32
 컨테이너 수 = 1

 테이블 스페이스 ID = 4
 이름 = SYSTOOLSPACE
 유형 = 데이터베이스 관리 스페이스
 내용 = 모든 영구 데이터. 대형 테이블 스페이스
 상태 = 0x0000
   세부사항 설명:
     정상
 전체 페이지 수 = 8192
 사용 가능한 페이지 수 = 8188
 사용된 페이지 수 = 148
 사용 가능한 페이지 수 = 8040
 상위 워터 마크(페이지) = 148
 페이지 크기(바이트) = 4096
 Extent 크기(페이지) = 4
 프리페치 크기(페이지) = 4
 컨테이너 수 = 1

 테이블 스페이스 ID = 5
 이름 = SYSTOOLSTMPSPACE
 유형 = 시스템 관리 스페이스
 내용 = 사용자 임시 데이터
 상태 = 0x0000
   세부사항 설명:
     정상
 전체 페이지 수 = 1
 사용 가능한 페이지 수 = 1
 사용된 페이지 수 = 1
 사용 가능한 페이지 수 = 적용되지 않음
 상위 워터 마크(페이지) = 적용되지 않음
 페이지 크기(바이트) = 4096
 Extent 크기(페이지) = 4
 프리페치 크기(페이지) = 4
 컨테이너 수 = 1


C:\ibm>db2 list tablespace containers for 0 show detail

            테이블 스페이스 0에 대한 테이블 스페이스 컨테이너

 컨테이너 ID = 0
 이름 = C:\DB2\NODE0000\SAMPLE\T0000000\C0000000.CAT
 유형 = 파일
 전체 페이지 수 = 16384
 사용 가능한 페이지 수 = 16380
 액세스 가능 = 예


## tablespace ts01의 BufferPool을 bp4로 변경 
C:\ibm>db2 alter tablespace ts01 bufferpool bp4
DB20000I  SQL 명령이 완료되었습니다.


## tablespace ts01에 컨테이너 추가
C:\ibm>db2 "alter tablespace ts01 add (file 'C:\DB2\TS01_CONTAINER1.DBF' 1000)"
DB20000I  SQL 명령이 완료되었습니다.

## tablespace ts01의 컨테이너 크기를 10페이지씩 증가
C:\ibm>db2 "alter tablespace ts01 extend (all 10)"
DB20000I  SQL 명령이 완료되었습니다.

## tablespace ts02의 컨테이너 크기를 300페이지로 변경
C:\ibm>db2 "alter tablespace ts02 resize (all 200)"
DB20000I  SQL 명령이 완료되었습니다.


## tablespace ts01의 컨테이너 확인
C:\ibm>db2 list tablespace containers for 3

            테이블 스페이스 3에 대한 테이블 스페이스 컨테이너

 컨테이너 ID = 0
 이름 = C:\DB2\NODE0000\SAMPLE\T0000003\C0000000.LRG
 유형 = 파일


## scott 스키마 생성후 user01a 사용자에게 그 사용 권한을 부여
C:\ibm>db2 create schema scott authorization user01a
DB20000I  SQL 명령이 완료되었습니다.

## schema "SCOTT"에 대한 정의 확인
C:\ibm>db2 "select * from syscat.schemata where schemaname='SCOTT'"

SCHEMANAME   OWNER      DEFINER        CREATE_TIME      REMARKS
---------------   -------       ---------      --------------      --------
SCOTT               USER01A    DB2ADMIN      2010-10-28-13       .38.19.243000 -

  1 레코드가 선택되었습니다.


## scott.dept 테이블에 대한 인덱스 생성
C:\ibm>db2 "create unique index scott.dept_X on scott.dept (id) include (name) cluster"
DB20000I  SQL 명령이 완료되었습니다.


## scott.empl 테이블에 대한 인덱스 생성
C:\ibm>db2 "create unique index scott.empl_X on scott.empl (id) cluster"
DB20000I  SQL 명령이 완료되었습니다.

C:\ibm>db2 "create index scott.empl_A on scott.empl (mydept)"
DB20000I  SQL 명령이 완료되었습니다.

## scott.dept 테이블에 기본키 추가
C:\ibm>db2 drop index scott.dept_X
DB20000I  SQL 명령이 완료되었습니다.

C:\ibm>db2 "alter table scott.dept add constraint dept_pk primary key (id)
DB20000I  SQL 명령이 완료되었습니다.

C:\ibm>db2 "drop index scott.empl_X"
DB20000I  SQL 명령이 완료되었습니다.




C:\ibm>db2 "alter table scott.empl add constraint empl_fk foreign key (mydept) references scott.dept on delete restrict"
DB20000I  SQL 명령이 완료되었습니다.


C:\ibm>db2 "alter table scott.empl add constraint empl_cc check (sex in ('M','F'))"
DB20000I  SQL 명령이 완료되었습니다.




C:\ibm>db2 describe table scott.empl

컬럼                           유형      유형
이름                           스키마    이름               길이     크기  널
------------------------------ --------- ------------------ -------- ----- -----
-
ID                             SYSIBM    SMALLINT                  2     0 아니오
NAME                           SYSIBM    VARCHAR                  30     0 아니오
SEX                            SYSIBM    CHARACTER                 1     0 예
MYDEPT                         SYSIBM    SMALLINT                  2     0 예
HIREDATE                       SYSIBM    DATE                      4     0 예
SALARY                         SYSIBM    SMALLINT                  2     0 예
EMAIL                          SYSIBM    VARCHAR                  30     0 아니오
RESUME                         SYSIBM    CLOB                   1024     0 예


  8 레코드가 선택되었습니다.





반응형

'Computer_IT > DBMS' 카테고리의 다른 글

h2 database utc time select  (0) 2013.05.21
DB2 - SNAPSHOT  (0) 2010.10.29
[DBMS] DB2의 SQL 한계  (0) 2008.11.10
db2 db configuration 확인  (0) 2008.07.08
[DB2] db2 lock 확인  (0) 2008.07.04

반응형
다음 표에는 특정 SQL 한계가 나와 있습니다. 프로그래머가 가장 제한적인 경우를 따른다면 쉽게 이식할 수 있는 응용프로그램을 설계할 수 있습니다.

http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0001029.htm

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/r0001029.htm
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

DB2 - SNAPSHOT  (0) 2010.10.29
DB2  (0) 2010.10.28
db2 db configuration 확인  (0) 2008.07.08
[DB2] db2 lock 확인  (0) 2008.07.04
[DB2] 컬럼 추가  (0) 2008.06.25

반응형
머...

db랑 연결뒤에...

db2 => db2 get db cfg
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

DB2  (0) 2010.10.28
[DBMS] DB2의 SQL 한계  (0) 2008.11.10
[DB2] db2 lock 확인  (0) 2008.07.04
[DB2] 컬럼 추가  (0) 2008.06.25
DB2에서 TIMESTAMP 시간 범위 검색  (0) 2008.03.10

반응형
$ db2 get snapshot for locks on 데이터베이스명


혹은


리눅스 / 유닉스의 경우엔 db2top 유틸리티 이용

$ db2top -d 데이터베이스명

실행하여 Lock 


반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[DBMS] DB2의 SQL 한계  (0) 2008.11.10
db2 db configuration 확인  (0) 2008.07.08
[DB2] 컬럼 추가  (0) 2008.06.25
DB2에서 TIMESTAMP 시간 범위 검색  (0) 2008.03.10
IBM DB2 SQLSTATE 메시지 - 오류 코드/에러코드  (0) 2008.02.29

반응형
DB2 컬럼 ADD

ALTER TABLE 테이블명 add 컬럼명 데이터타입 default 기본값

ALTER TABLE T_YAHOO add COL_NAME VARCHAR(100) default '0'


 

DB2 9.7 부턴 컬럼 정보 MODIFY 도 지원한다.

반응형

'Computer_IT > DBMS' 카테고리의 다른 글

db2 db configuration 확인  (0) 2008.07.08
[DB2] db2 lock 확인  (0) 2008.07.04
DB2에서 TIMESTAMP 시간 범위 검색  (0) 2008.03.10
IBM DB2 SQLSTATE 메시지 - 오류 코드/에러코드  (0) 2008.02.29
SQL IDE(GUI) 에디터들...  (0) 2008.02.05

반응형
SELECT * FROM 테이블명
WHERE 컬럼명 between timestamp('2008-01-01 00:00:00') and timestamp('2008-02-20 23:59:59')


DB2에서 TIMESTAMP 시간 범위 검색
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[DB2] db2 lock 확인  (0) 2008.07.04
[DB2] 컬럼 추가  (0) 2008.06.25
IBM DB2 SQLSTATE 메시지 - 오류 코드/에러코드  (0) 2008.02.29
SQL IDE(GUI) 에디터들...  (0) 2008.02.05
mysql 컬럼 속성 변경  (0) 2007.10.23

반응형

SQLSTATE 메시지

이 절에서는 SQLSTATE와 해당되는 의미를 나열합니다. SQLSTATE는 클래스 코드별로 그룹지어집니다. 부속 코드에 대해서는 해당 테이블을 참조하십시오.

표 2. SQLSTATE 클래스 코드
클래스
코드
 
의미
부속 코드에 대해
참조할 페이지
00 규정되지 않은 성공적인 완료 표 3
01 경고 표 4
02 데이터 없음 표 5
07 동적 SQL 오류 표 6
08 연결 예외 표 7
09 트리거 조치 예외 표 8
0A 기능(feature)이 지원되지 않음 표 9
0D 유효하지 않은 목표 유형 스펙 표 10
0F 유효하지 않은 토큰 표 11
0K 유효하지 않은 RESIGNAL문 표 12
20 CASE문에 해당하는 Case가 없음 표 13
21 카디낼리티 위반 표 14
22 데이터 예외 표 15
23 제한조건 위반 표 16
24 유효하지 않은 커서 상태 표 17
25 유효하지 않은 트랜잭션 상태 표 18
26 유효하지 않은 SQL문 ID 표 19
28 유효하지 않은 권한 부여 스펙 표 21
2D 유효하지 않은 트랜잭션 종료 표 22
2E 유효하지 않은 연결 이름 표 23
34 유효하지 않은 커서 이름 표 24
36 커서 감도 예외 표 25
38 외부 함수 예외 표 26
39 외부 함수 호출 예외 표 27
3B 유효하지 않은 SAVEPOINT 표 28
40 트랜잭션 롤백 표 29
42 구문 오류 또는 액세스 규칙 위반 표 30
44 WITH CHECK OPTION 위반 표 31
46 Java DDL 표 32
51 유효하지 않은 응용프로그램 상태 표 33
53 유효하지 않은 피연산자 또는 불일치 스펙 표 34
54 SQL 또는 제품 한계가 초과됨 표 35
55 오브젝트가 전제(Prerequisite) 상태에 있지 않음 표 36
56 기타 SQL 또는 제품 오류 표 37
57 자원이 사용 가능하지 않거나 조작원이 개입함 표 38
58 시스템 오류 표 39

클래스 코드 00 규정되지 않은 성공적인 완료

표 3. 클래스 코드 00: 규정되지 않은 성공적인 완료
SQLSTATE 값  
의미
00000 조작을 정상적으로 실행했으며 어떠한 유형의 경고 또는 예외 상황도 발생하지 않았습니다.

클래스 코드 01 경고

표 4. 클래스 코드 01: 경고
SQLSTATE 값  
의미
01002 DISCONNECT 오류가 발생했습니다.
01003 널(NULL) 값이 컬럼 함수의 인수에서 제거되었습니다.
01004 문자열 값이 짧은 길이로 다른 문자열 데이터 유형에 지정될 때 절단되었습니다.
01005 SQLDA 내의 항목 수가 충분하지 않습니다.
01007 특권이 부여되지 않았습니다.
0100C 프로시저로부터 하나 이상의 임시(ad hoc) 결과 세트가 리턴되었습니다.
0100D 닫혀진 커서가 체인 내에 있는 다음 결과 세트에 대해 다시 열렸습니다.
0100E 프로시저가 허용되는 최대수를 초과하는 결과 세트를 생성했습니다. 첫 번째 정수 결과 세트만이 호출자에게 리턴되었습니다.
01503 결과 컬럼의 수가 제공된 호스트 변수의 수보다 큽니다.
01504 UPDATE 또는 DELETE문이 WHERE절을 포함하지 않습니다.
01506 산술 연산의 결과로 나온 유효하지 않은 날짜를 정정하기 위해 DATE 또는 TIMESTAMP값이 조정되었습니다.
01509 사용자의 가상 머신에 스토리지가 충분하지 않으므로 커서에 대한 블로킹이 취소되었습니다.
01515 컬럼의 널(NULL)이 아닌 값이 호스트 변수의 범위 내에 있지 않으므로 널(NULL) 값이 호스트 변수에 지정되었습니다.
01516 적용할 수 없는 WITH GRANT OPTION이 무시되었습니다.
01517 변환할 수 없는 문자가 대체 문자로 바뀌였습니다.
01519 숫자 값이 범위를 벗어나므로 널(NULL) 값이 호스트 변수에 지정되었습니다.
01524 컬럼 함수의 결과에 산술 연산식 평가로 생성된 널(NULL) 값이 들어 있지 않습니다.
01526 분리 레벨이 에스컬레이션되었습니다.
01527 SET문이 AS에 존재하지 않는 특수 레지스터를 참조합니다.
01539 연결에는 성공했으나, SBCS 문자만 사용되어야 합니다.
01543 중복된 제한조건이 무시되었습니다.
01545 규정되지 않은 컬럼 이름이 상관 참조로 해석되었습니다.
01550 설명이 지정된 인덱스가 이미 있으므로, 인덱스가 작성되지 않았습니다.
01560 중복된 GRANT가 무시되었습니다.
01562 데이터베이스 구성 파일의 로그에 대한 새 경로(newlogpath)가 유효하지 않습니다.
01563 로그 파일에 대한 현재 경로(logpath)가 유효하지 않습니다. 로그 파일 경로가 디폴트값으로 재설정됩니다.
01564 0으로 나누어 호스트 변수에 널(NULL) 값이 지정되었습니다.
01586 참조 구조에서 상위 테이블에 대한 제한조건을 OFF로 설정하면, 하나 이상의 하위 테이블이 자동으로 점검 보류 상태가 됩니다.
01589 명령문에 불필요한 스펙이 들어 있습니다.
01592 SOURCE 함수를 참조하는 CREATE FUNCTION문에서
  • 입력 매개변수의 길이, 정밀도 또는 스케일이 소스 함수의 해당 매개변수의 길이, 정밀도 또는 스케일보다 크거나 또는
  • RETURNS나 CAST FROM 매개변수의 길이, 정밀도 또는 스케일이 소스 함수의 길이, 정밀도 또는 스케일보다 작거나 또는
  • CREATE FUNCTION문에 있는 CAST FROM 매개변수의 길이, 정밀도 또는 스케일이 RETURNS 매개변수의 길이, 정밀도 또는 스케일보다 큽니다.
런타임시 절단될 수 있습니다.(그리고 이때 오류가 발생할 수 있습니다.)
01594 SQLDA에서 ALL 정보의 항목 수가 충분하지 않습니다.(예: 구별 이름을 리턴하는 데 필요한 디스크립터가 충분하지 않습니다.)
01595 해당 뷰가 기존의 유효하지 않은 뷰를 대체했습니다.
01596 Long 문자열 데이터 유형에 근거한 구별 유형에 대해 비교 함수가 작성되지 않았습니다.
01598 이미 사용 중인 이벤트 모니터를 활성화하거나 사용하고 있지 않은 이벤트 모니터를 비활성화하려고 시도했습니다.
01599 REBIND에 대한 바인드 옵션이 무시되었습니다.
01602 최적화 레벨이 감소되었습니다.
01603 CHECK DATA 처리 중 제한조건 위반을 발견하고 이를 예외 테이블로 이동시켰습니다.
01604 SQL문이 Explain되었으나 실행되지 않았습니다.
01605 재귀 공통 테이블 표현식에 무한 루프가 들어 있을 수 있습니다.
01606 노드 또는 시스템 데이터베이스 디렉토리가 비어 있습니다.
01607 읽기 전용 트랜잭션의 노드에 대한 시간 차이가 정의된 임계값을 초과합니다.
01609 프로시저가 허용되는 최대수를 초과하는 결과 세트를 생성했습니다. 첫 번째 정수 결과 세트만이 호출자에게 리턴되었습니다.
01610 프로시저로부터 하나 이상의 임시(ad hoc) 결과 세트가 리턴되었습니다.
01611 닫혀진 커서가 체인 내에 있는 다음 결과 세트에 대해 다시 열렸습니다.
01614 로케이터 수가 결과 세트 수보다 적습니다.
01616 계산된 CPU 비용이 자원 한계를 초과합니다.
01618 노드 그룹을 재분배하려면 데이터 파티션을 변경해야 합니다.
01620 UNION ALL의 일부 기본 테이블이 동일한 테이블일 수도 있습니다.
01621 검색된 LOB 값이 변경되었을 수도 있습니다.
01622 명령문이 완료되었으나, 명령문이 완료된 후에 시스템 오류가 발생했습니다.
01623 DEGREE 값이 무시됩니다.
01625 스키마 이름은 CURRENT PATH에서 두 번 이상 나타납니다.
01626 데이터베이스에 사용 중인 버퍼 풀이 하나만 있습니다.
01627 DATALINK 값은 테이블이 조정 보류 중이거나 조정할 수 없는 상태이므로 유효하지 않을 것입니다.
01632 동시 연결의 수가 제품에 대해 정의된 한계를 초과했습니다.
01633 구체화된 쿼리 테이블을 쿼리 처리 최적화에 사용하지 못할 수도 있습니다.
01636 비증분식 데이터의 무결성이 데이터베이스 관리 프로그램에서 확인되지 않았습니다.
01637 디버깅이 작동 가능하지 않습니다.
01639 페더레이티드 오브젝트에는 호출자가 데이터 소스 오브젝트에 대한 필수 특권을 갖고 있어야 합니다.
01641 데이터 링크 유형 속성은 구조화된 유형의 사용을 제한합니다.
01642 컬럼이 가장 큰 USER 디폴트값이 들어갈 만큼 크지 않습니다.
01643 SQL 루틴의 SQLSTATE 또는 SQLCODE 변수에 지정한 값을 겹쳐쓸 수 있으며, 지정된 값으로 핸들러가 활성화되지 않습니다.
01645 SQL 프로시저의 실행 파일이 데이터베이스 카탈로그에 저장되어 있지 않습니다.
01648 VALUE COMPRESSION이 테이블에 대해 비활성화되었으므로 COMPRESS 컬럼 속성이 무시되었습니다.
01649 버퍼 풀 조작이 완료되었으나 다음에 데이터베이스를 재시작할 때까지 적용되지 않습니다.
01650 인덱스와 테이블 통계가 일치하지 않습니다.
01651 이벤트 모니터가 활성화되었지만, 일부 모니터링 정보가 손실되었을 수 있습니다.
01652 명령문 컨텍스트로 인해 분리 절이 무시됩니다.
01653 USER에게 권한을 부여하였습니다. 권한 부여 이름이 8바이트를 초과하기 때문에 그룹이 고려되지 않았습니다.
01654 버퍼 풀이 시작되지 않았습니다.
01655 이벤트 모니터가 작성되었지만, 최소한 하나의 이벤트 모니터 목표 테이블이 이미 존재합니다.
01657 다음에 데이터베이스를 시작할 때까지 버퍼 풀 조작이 적용되지 않습니다.
01665 컬럼 이름 또는 매개변수 이름이 절단되었습니다.
01667 뷰를 쿼리 처리 최적화에 사용하지 못할 수도 있습니다.
01669 지정된 별칭에 통계가 리모트와 로컬 카탈로그 간의 스키마 불일치로 인해 갱신되지 않았습니다.
01670 새로운 테이블에 대한 기본 디폴트 테이블 스페이스가 없습니다.
01671 캐시된 명령문의 환경이 현재 환경과 다릅니다. 현재 환경은 지정된 명령문을 다시 최적화하는 데 사용됩니다.
01H51 MQSeries Application Messaging Interface 메시지가 절단되었습니다.
01HXX 사용자 정의 함수(UDF) 또는 외부 프로시저 CALL에 의해 유효한 경고 SQLSTATE가 리턴되었습니다.

클래스 코드 02 데이터 없음

표 5. 클래스 코드 02: 데이터 없음
SQLSTATE 값  
의미
02000 다음 예외 중 하나가 발생했습니다.
  • SELECT INTO문 또는 INSERT문의 subselect의 결과가 빈 테이블이었습니다.
  • 검색한 UPDATE 또는 DELETE문에서 식별된 행 수가 0이었습니다.
  • FETCH문에서 참조된 커서의 위치가 결과 테이블의 마지막 행 다음입니다.
02501 커서 위치가 현재 행의 FETCH에 유효하지 않습니다.
02502 홀(hole) 삭제 또는 갱신이 발견되었습니다.

클래스 코드 07 동적 SQL 오류

표 6. 클래스 코드 07: 동적 SQL 오류
SQLSTATE 값  
의미
07001 호스트 변수의 수가 매개변수 표시문자의 수에 대해 올바르지 않습니다.
07002 호출 매개변수 목록 또는 제어 블록이 유효하지 않습니다.
07003 EXECUTE문에서 식별된 명령문이 SELECT문이거나, 준비된 상태가 아닙니다.
07004 동적 매개변수에 USING절 또는 INTO절이 필요합니다.
07005 커서의 명령문 이름이 준비된 명령문을 식별하는데, 이 명령문은 커서와 연관될 수 없습니다.
07006 입력 호스트 변수의 데이터 유형 때문에 이 변수를 사용할 수 없습니다.

클래스 코드 08 연결 예외

표 7. 클래스 코드 08: 연결 예외
SQLSTATE 값  
의미
08001 응용프로그램 리퀘스터가 연결을 설정할 수 없습니다.
08002 연결이 이미 존재합니다.
08003 연결이 존재하지 않습니다.
08004 응용프로그램 서버(AS)가 연결 설정을 거부했습니다.
08007 알 수 없는 트랜잭션 해석(resolution).
08502 사용 가능한 트랜잭션 관리 프로그램이 없어서 TWOPHASE의 SYNCPOINT로 실행 중인 응용프로그램 프로세스에서 발행한 CONNECT문이 실패했습니다.
08504 지정된 경로 이름 바꾸기 구성 파일을 처리하는 중에 오류가 발견되었습니다.

클래스 코드 09 트리거 조치 예외

표 8. 클래스 코드 09: 트리거 조치 예외
SQLSTATE 값  
의미
09000 트리거 SQL문이 실패했습니다.

클래스 코드 0A 기능(feature)이 지원되지 않음

표 9. 클래스 코드 0A: 기능(feature)이 지원되지 않음
SQLSTATE 값  
의미
0A001 프로세스가 연결 가능한 상태에 있지 않으므로, CONNECT문이 유효하지 않습니다.
0A502 이 데이터베이스 인스턴스에 대한 조치 또는 조작이 작동 가능하지 않습니다.
0A503 데이터의 불일치 가능성이 있으므로 페더레이티드 삽입, 갱신 또는 삭제 조작을 컴파일할 수 없습니다.

클래스 코드 0D 유효하지 않은 목표 유형 스펙

표 10. 클래스 코드 0D: 유효하지 않은 유형 스펙
SQLSTATE 값  
의미
0D000 목표 구조화된 데이터 유형 스펙이 적절한 소스 구조화된 데이터 유형의 부속 유형이 아닙니다.

클래스 코드 0F 유효하지 않은 토큰

표 11. 클래스 코드 0F: 유효하지 않은 토큰
SQLSTATE 값  
의미
0F001 LOB 토큰 변수가 현재 어떤 값도 나타내지 않습니다.

클래스 코드 0K 유효하지 않은 RESIGNAL문

표 12. 클래스 코드 0K: 유효하지 않은 RESIGNAL문
SQLSTATE 값  
의미
0K000 RESIGNAL문이 핸들러 내에 있지 않습니다.

클래스 코드 20 Case문에 해당되는 Case가 없음

표 13. 클래스 코드 20: Case문에 해당되는 Casre가 없음
SQLSTATE 값  
의미
20000 CASE문에 해당하는 Case가 없습니다.

클래스 코드 21 카디낼리티 위반

표 14. 클래스 코드 21: 카디낼리티 위반
SQLSTATE 값  
의미
21000 SELECT INTO의 결과가 두 행 이상의 결과 테이블이거나, 기본 술어의 서브쿼리 결과가 둘 이상의 값입니다.
21501 자체 참조 테이블로의 복수 행 삽입(INSERT)은 유효하지 않습니다.
21502 기본 키의 복수 행 갱신(UPDATE)은 유효하지 않습니다.
21504 RESTRICT나 SET NULL 삭제 규칙이 있는 자체 참조 테이블로부터의 복수 행 삭제(DELETE)는 유효하지 않습니다.
21505 행 함수는 둘 이상의 행을 리턴해서는 안됩니다.
21506 테이블의 동일한 행을 두 번 이상 갱신, 삭제 또는 삽입 조작의 목표로 사용할 수 없습니다.

클래스 코드 22 데이터 예외

표 15. 클래스 코드 22: 데이터 예외
SQLSTATE 값  
의미
22001 문자 데이터의 오른쪽 절단이 발생했습니다. 예를 들어, 갱신 또는 삽입 값이 컬럼에 비해 너무 긴 문자열이거나 날짜 시간 값이 너무 작아 호스트 변수에 지정할 수 없습니다.
22002 널(NULL) 값 또는 표시기 매개변수가 없습니다. 예를 들면, 표시기 변수가 지정되어 있지 않으므로, 호스트 변수에 널(NULL) 값을 지정할 수 없습니다.
22003 숫자 값이 범위를 벗어납니다.
22004 PARAMETER STYLE GENERAL로 정의된 프로시저 또는 널(Null)이 아닌 인수로 호출된 유형 보존 메소드에서 널(Null) 값이 리턴될 수 없습니다.
22007 유효하지 않은 날짜 시간 형식이 발견되었습니다. 즉, 유효하지 않은 문자열 표현이나 값이 지정되었습니다.
22008 날짜 시간 필드 오버플로우가 발생했습니다. 예를 들어, 날짜 또는 시간소인에 대한 산술 연산의 결과가 유효한 날짜 범위 내에 있지 않습니다.
2200G 대부분의 동적 유형이 일치하지 않습니다.
22011 부속 문자열 오류가 발생했습니다. 예를 들어, SUBSTR의 인수가 범위를 벗어납니다.
22012 0으로 나누는 것은 유효하지 않습니다.
22018 CAST, DECIMAL, FLOAT 또는 INTEGER 스칼라 함수에 대한 문자 값이 유효하지 않습니다.
22019 LIKE 술어에 유효하지 않은 Escape 문자가 있습니다.
22021 문자가 코드화된 문자 세트에 없습니다.
22024 NUL 종료 입력 호스트 변수 또는 매개변수가 NUL을 포함하지 않습니다.
22025 LIKE 술어 문자열 패턴에 유효하지 않은 Escape 문자의 어커런스가 들어 있습니다.
2202D 널(NULL) 인스턴스가 mutator 메소드에 사용되었습니다.
2202H TABLESAMPLE절의 샘플 크기가 유효하지 않습니다.
22501 가변 길이 문자열의 길이 제어 필드가 음수이거나 최대값보다 큽니다.
22504 혼합 데이터 값이 유효하지 않습니다.
22506 TOD 시계가 고장났거나 운영 체제 시간대 매개변수가 범위를 벗어났기 때문에, 날짜 시간 특수 레지스터에 대한 참조가 유효하지 않습니다.
22522 CCSID 값이 전혀 유효하지 않거나, 데이터 유형 또는 부속 유형에 유효하지 않거나, 코드화 체계에 유효하지 않습니다.
22526 키 변환 함수에서 행을 생성하지 않았거나 중복 행을 생성했습니다.
22527 다중 행 INSERT 조작에 유효하지 않은 입력 데이터가 발견되었습니다.

클래스 코드 23 제한조건 위반

표 16. 클래스 코드 23: 제한조건 위반
SQLSTATE 값  
의미
23001 상위 키의 갱신 또는 삭제는 RESTRICT 갱신 또는 삭제 규칙에 의해 금지됩니다.
23502 삽입 또는 갱신 값이 널(NULL)이지만, 컬럼이 널(NULL) 값을 포함할 수 없습니다.
23503 외부 키에 대해 삽입 또는 갱신 값이 유효하지 않습니다.
23504 상위 키의 갱신 또는 삭제는 NO ACTION 갱신 또는 삭제 규칙에 의해 금지됩니다.
23505 고유 인덱스 또는 고유 제한조건에 의해 부여된 제한조건의 위반이 발생했습니다.
23510 RLST 테이블에 의해 부과된 명령 사용시 제한조건의 위반이 발생했습니다.
23511 점검 제한조건이 삭제를 제한하므로 상위 행을 삭제할 수 없습니다.
23512 테이블에 제한조건 정의를 충족시키지 않는 행이 들어 있으므로 점검 제한조건을 추가할 수 없습니다.
23513 INSERT 또는 UPDATE의 결과 행이 점검 제한조건 정의를 준수하지 않습니다.
23514 데이터 점검 처리 중 제한조건 위반이 발견되었습니다.
23515 테이블에 지정한 키에 대해 중복된 값이 들어 있으므로, 고유 인덱스를 작성하거나 고유 제한조건을 추가할 수 없습니다.
23520 모든 외부 키의 값이 상위 테이블의 상위 키와 동일하지 않으므로, 외부 키를 정의할 수 없습니다.
23521 카탈로그 테이블의 갱신이 내부 제한조건을 위반합니다.
23522 식별 컬럼 또는 순서에 대한 값 범위가 모두 사용되었습니다.
23524 UNION ALL 뷰 내의 행 이동이 유효하지 않습니다.
23527 페더레이티드 데이터 원본에서 무결성 제한조건을 위반했습니다.

클래스 코드 24 유효하지 않은 커서 상태

표 17. 클래스 코드 24: 유효하지 않은 커서 상태
SQLSTATE 값  
의미
24501 식별된 커서는 열려 있지 않습니다.
24502 OPEN문에서 식별된 커서는 이미 열려 있습니다.
24504 UPDATE, DELETE, SET 또는 GET문에서 식별된 커서가 행에 위치하지 않습니다.
24506 PREPARE에서 식별된 명령문은 열린 커서의 명령문입니다.
24510 삭제 홀(hole) 또는 갱신 홀(hole)에 대해 UPDATE 또는 DELETE 조작이 시도되었습니다.
24512 결과 테이블이 기본 테이블과 일치하지 않습니다.
24513 커서 위치를 알 수 없으므로 FETCH NEXT, PRIOR, CURRENT 또는 RELATIVE가 허용되지 않습니다.
24514 이전 오류가 이 커서를 작동 불가능화하게 했습니다.
24516 커서가 이미 결과 세트에 지정되었습니다.
24517 외부 함수 또는 메소드에 의해 커서가 열린 상태로 있습니다.

클래스 코드 25 유효하지 않은 트랜잭션 상태

표 18. 클래스 코드 25: 유효하지 않은 트랜잭션 상태
SQLSTATE 값  
의미
25000 삽입, 갱신 또는 삭제 조작은 지정된 컨텍스트에서 유효하지 않습니다.
25001 이 명령문은 작업 단위(UOW)에서 첫 번째 명령문으로만 허용됩니다.
25501 이 명령문은 작업 단위(UOW)에서 첫 번째 명령문으로만 허용됩니다.
25502 단일 트랜잭션에 조작이 여러 번 발생할 수 없습니다.

클래스 코드 26 유효하지 않은 SQL문 ID

표 19. 클래스 코드 26: 유효하지 않은 SQL문 ID
SQLSTATE 값  
의미
26501 식별된 명령문이 존재하지 않습니다.

클래스 코드 27 트리거 데이터 변경 위반

표 20. 클래스 코드 27: 트리거 데이터 변경 위반
SQLSTATE 값   의미
27000 제한조건 또는 트리거에 의해 MERGE문의 목표 테이블을 수정하려고 했습니다.

클래스 코드 28 유효하지 않은 권한 부여 스펙

표 21. 클래스 코드 28: 유효하지 않은 권한 부여 스펙
SQLSTATE 값  
의미
28000 권한 부여 이름이 유효하지 않습니다.

클래스 코드 2D 유효하지 않은 트랜잭션 종료

표 22. 클래스 코드 2D: 유효하지 않은 트랜잭션 종료
SQLSTATE 값  
의미
2D521 SQL COMMIT 또는 ROLLBACK이 현재 운영 환경에서는 유효하지 않습니다.
2D522 ATOMIC 복합 명령문에서는 COMMIT 및 ROLLBACK이 허용되지 않습니다.
2D528 동적 COMMIT가 응용프로그램 실행 환경에 유효하지 않습니다.
2D529 동적 ROLLBACK이 응용프로그램 실행 환경에 유효하지 않습니다.

클래스 코드 2E 유효하지 않은 연결 이름

표 23. 클래스 코드 2E: 유효하지 않은 연결 이름
SQLSTATE 값  
의미
2E000 연결 이름이 유효하지 않습니다.

클래스 코드 34 유효하지 않은 커서 이름

표 24. 클래스 코드 34: 유효하지 않은 커서 이름
SQLSTATE 값  
의미
34000 커서 이름이 유효하지 않습니다.

클래스 코드 36 유효하지 않은 커서 스펙

표 25. 클래스 코드 36: 유효하지 않은 커서 스펙
SQLSTATE 값  
의미
36001 SENSITIVE 커서는 지정된 SELECT문에 대해 정의할 수 없습니다.

클래스 코드 38 외부 함수 예외

표 26. 클래스 코드 38: 외부 함수 예외
SQLSTATE 값  
의미
38XXX 외부 루틴 또는 트리거에 의해 유효한 오류 SQLSTATE가 리턴되었습니다.
38001 SQL문 실행에 외부 루틴은 허용되지 않습니다.
38002 루틴이 데이터를 수정하려 했으나, 이 루틴은 MODIFIES SQL DATA로 정의되지 않았습니다.
38003 명령문이 루틴에서 허용되지 않습니다.
38004 루틴이 데이터를 읽으려 했으나, 이 루틴은 READS SQL DATA로 정의되지 않았습니다.
38501 사용자 정의 함수(UDF), 외부 프로시저 또는 트리거를 호출(SIMPLE CALL 또는 SIMPLE CALL WITH NULLS 호출 규약 사용)하는 동안 오류가 발생했습니다.
38502 SQL문 실행에 외부 함수는 허용되지 않습니다.
38503 사용자 정의 함수(UDF)가 이상 종료되었습니다.
38504 사용자가 가능한 루핑 상태를 중지하려고 사용자 정의 함수(UDF)를 인터럽트했습니다.
38505 루틴의 FINAL CALL에서 SQL문이 허용되지 않습니다.
38506 함수가 OLE DB Provider로부터의 오류로 실패했습니다.
38552 SYSFUN 스키마의 함수(IBM 제공)가 비정상적으로 종료했습니다.

다음과 같은 이유 코드 중 하나가 메시지 텍스트에 나타날 수 있습니다.

01
숫자 값이 범위를 벗어남
02
0으로 나눔
03
산술 오버플로우 또는 언더플로우
04
유효하지 않은 날짜 형식
05
유효하지 않은 시간 형식
06
유효하지 않은 시간소인 형식
07
유효하지 않은 시간소인 지속 시간 문자 표현
08
유효하지 않은 간격 유형(1, 2, 4, 8, 16, 32, 64, 128, 256 중 하나여야 함)
09
문자열이 너무 김
10
문자열 함수의 길이나 위치가 범위를 벗어남
11
유효하지 않은 부동 소수점 숫자의 문자 표현
38553 시스템 스키마의 루틴이 오류로 종료되었습니다.
38H01 MQSeries 함수가 초기화하는 데 실패했습니다.
38H02 MQSeries Application Messaging Interface가 세션을 종료하는 데 실패했습니다.
38H03 MQSeries Application Messaging Interface가 메시지를 적절히 처리하지 못했습니다.
38H04 MQSeries Application Messaging Interface가 메시지를 보내는 데 실패했습니다.
38H05 MQSeries Application Messaging Interface가 메시지 읽기 및 받기에 실패했습니다.
38H06 MQSeries Application Messaging Interface (비)서브스크립션 요청에 실패했습니다.
38H07 MQSeries Application Messageing Inteface가 작업 단위(UOW)를 커미트하는 데 실패했습니다.
38H08 MQSeries Application Messaging Interface 규정 오류.
38H09 MQSeries XA (2단계 커미트) API 호출 오류.
38H0A MQSeries Application Messaging Interface가 작업 단위(UOW)를 롤백하는 데 실패했습니다.

클래스 코드 39 외부 함수 호출 예외

표 27. 클래스 코드 39: 외부 함수 호출 예외
SQLSTATE 값  
의미
39001 사용자 정의 함수(UDF)가 유효하지 않은 SQLSTATE를 리턴했습니다.
39004 IN 또는 INOUT 인수에는 널(NULL) 값이 허용되지 않습니다.
39501 인수와 연관된 구조 식별자(eye-catcher)가 수정되었습니다.

클래스 코드 3B 유효하지 않은 SAVEPOINT

표 28. 클래스 코드 3B: 유효하지 않은 SAVEPOINT
SQLSTATE 값  
의미
3B001 세이브포인트가 유효하지 않습니다.
3B002 최대 세이브포인트 수에 도달했습니다.
3B501 중복된 세이브포인트 이름이 발견되었습니다.
3B502 RELEASE 또는 ROLLBACK TO SAVEPOINT가 지정되었으나 세이브포인트가 존재하지 않습니다.
3B503 트리거 또는 전역 트랜잭션에서는 SAVEPOINT, RELEASE SAVEPOINT 또는 ROLLBACK TO SAVEPOINT가 허용되지 않습니다.

클래스 코드 40 트랜잭션 롤백

표 29. 클래스 코드 40: 트랜잭션 롤백
SQLSTATE 값  
의미
40001 자동 롤백되는 교착 상태나 시간종료가 발생했습니다.
40003 명령문 완료를 알 수 없습니다.
40504 시스템 오류로 인해 작업 단위가 롤백되었습니다.
40506 SQL 오류로 인해 현재 트랜잭션이 롤백되었습니다.
40507 인덱스 작성의 실패로 현재 트랜잭션이 롤백되었습니다.

클래스 코드 42 구문 오류 또는 액세스 규칙 위반

표 30. 클래스 코드 42: 구문 오류 또는 액세스 규칙 위반
SQLSTATE 값  
의미
42501 권한 부여 ID에는 식별된 오브젝트에 대해 지정한 조작을 실행할 수 있는 특권이 없습니다.
42502 권한 부여 ID에는 지정된 대로 조작을 수행할 수 있는 특권이 없습니다.
42504 지정한 특권을 지정된 권한 부여 이름에서 취소할 수 없습니다.
42506 소유자 권한 부여에 실패했습니다.
42508 지정한 데이터베이스 특권을 PUBLIC으로 부여할 수 없습니다.
42509 STATICRULES 옵션으로 인해 SQL 문에는 권한이 부여되지 않았습니다.
42511 DATALINK 값을 검색할 수 없습니다.
42601 문자, 토큰 또는 절이 유효하지 않거나 누락되었습니다.
42602 이름에서 유효하지 않은 문자가 발견되었습니다.
42603 종료되지 않은 문자열 상수가 발견되었습니다.
42604 유효하지 않은 숫자나 문자열 상수가 발견되었습니다.
42605 스칼라 함수에 대해 지정된 인수의 수가 유효하지 않습니다.
42606 유효하지 않은 16진수 상수가 발견되었습니다.
42607 컬럼 함수의 피연산자가 유효하지 않습니다.
42608 VALUES에서의 NULL 또는 DEFAULT 사용이 유효하지 않습니다.
42609 연산자나 술어의 모든 피연산자가 매개변수 표시문자입니다.
42610 매개변수 표시문자가 허용되지 않습니다.
42611 컬럼 또는 인수 정의가 유효하지 않습니다.
42612 명령문 문자열이, 제시되는 컨텍스트에서 허용되지 않는 SQL문입니다.
42613 절이 상호 배제적(exclusive)입니다.
42614 중복된 키워드는 유효하지 않습니다.
42615 유효하지 않은 다른 방법이 발견되었습니다.
42616 유효하지 않은 옵션이 지정되었습니다.
42617 명령문 문자열이 공백이거나 비어 있습니다.
42618 호스트 변수가 허용되지 않습니다.
42620 읽기 전용 SCROLL이 UPDATE절에 대해 지정되었습니다.
42621 점검 제한조건이 유효하지 않습니다.
42622 이름이나 레이블이 너무 깁니다.
42623 DEFAULT절을 지정할 수 없습니다.
42625 CASE 표현식이 유효하지 않습니다.
42627 RETURNS절은 EXPRESSION AS절을 사용하는 술어 스펙 앞에 지정되어야 합니다.
42628 TO SQL 또는 FROM SQL 트랜잭션 함수가 변환 정의에 두 번 이상 정의되었습니다.
42629 SQL 루틴에는 매개변수 이름이 지정되어야 합니다.
42630 SQLSTATE 또는 SQLCODE 변수 선언이 중첩된 복합 명령문 내에 있어서는 안됩니다.
42631 SQL 함수 또는 메소드에 있는 RETURN문은 리턴 값을 포함해야 합니다.
42634 XML 이름이 유효하지 않습니다.
42635 XML 이름 스페이스 접두부가 유효하지 않습니다.
42701 삽입, 갱신 조작 또는 SET 전이 변수 명령문에서 중복된 컬럼 이름이 발견되었습니다.
42702 중복된 이름으로 인해 컬럼 참조가 명확하지 않습니다.
42703 정의되지 않은 컬럼, 속성 또는 매개변수 이름이 발견되었습니다.
42704 정의되지 않은 오브젝트 이름이나 제한조건 이름이 발견되었습니다.
42705 정의되지 않은 서버 이름이 발견되었습니다.
42707 ORDER BY내의 컬럼 이름이 결과 테이블의 컬럼을 식별하지 않습니다.
42709 PRIMARY, UNIQUE 또는 FOREIGN KEY절에서 중복된 컬럼 이름이 발견되었습니다.
42710 중복된 오브젝트 이름 또는 제한조건 이름이 발견되었습니다.
42711 중복된 컬럼 이름이나 속성 이름이 오브젝트 정의 또는 ALTER문에서 발견되었습니다.
42712 FROM절에서 중복된 테이블 지정자가 발견되었습니다.
42713 오브젝트 목록에 중복되는 오브젝트가 발견되었습니다.
42720 리모트 데이터베이스에 대한 노드 이름이 노드 디렉토리에 없습니다.
42723 동일한 시그니처를 갖는 함수가 스키마에 이미 있습니다.
42724 사용자 정의 함수(UDF) 또는 프로시저에 사용되는 외부 프로그램에 액세스할 수 없습니다.
42725 함수 또는 메소드가 직접 참조되었지만(시그니처 또는 특정 인스턴스 이름에 의해서가 아님), 해당 함수의 특정 인스턴스가 둘 이상 있습니다.
42726 이름 지정된 파생된 테이블(derived table)에 대해 중복된 이름이 발견되었습니다.
42727 새로운 테이블에 기본 디폴트 테이블 스페이스가 없습니다.
(버퍼풀과 테이블 스페이스를 생성해줌)
42728 노드 그룹 정의에서 중복된 노드가 발견되었습니다.
42729 노드가 정의되어 있지 않습니다.
42730 컨테이너 이름이 이미 다른 테이블 스페이스에서 사용되고 있습니다.
42731 컨테이너 이름이 이미 이 테이블 스페이스에서 사용되고 있습니다.
42732 SET CURRENT PATH문에서 중복된 스키마 이름이 발견되었습니다.
42734 중복된 매개변수 이름, SQL 변수 이름, 커서 이름, 조건 이름 또는 레이블이 발견되었습니다.
42735 테이블 스페이스를 위한 노드 그룹이 버퍼 풀에 대해 정의되어 있지 않습니다.
42736 LEAVE문에 지정된 레이블이 없거나 유효하지 않습니다.
42737 핸들러에 지정된 조건이 정의되어 있지 않습니다.
42738 중복된 컬럼 이름 또는 이름이 지정되지 않은 컬럼이 FOR문의 DECLARE CURSOR문에 지정되었습니다.
42739 중복된 변환이 발견되었습니다.
42740 지정된 유형에 대한 변환이 없습니다. 변환이 삭제되지 않았습니다.
42741 데이터 유형에 대한 변환 그룹이 정의되어 있지 않습니다.
42742 유형이 지정된 테이블 또는 유형이 지정된 뷰 계층 구조에 같은 유형의 서브테이블이나 서브뷰가 이미 있습니다.
42743 검색 메소드가 인덱스 확장에 없습니다.
42744 변환 그룹에 TO SQL 또는 FROM SQL 변환 함수가 정의되어 있지 않습니다.
42745 루틴이 기존의 메소드를 사용하여 중첩 관계를 정의합니다.
42746 메소드 이름은 같은 유형 계층 구조 내의 구조화된 유형 이름과 같을 수 없습니다.
42748 스토리지 경로가 데이터베이스에 대해 이미 존재하거나 두 번 이상 지정되었습니다.
42802 삽입 값 또는 갱신 값의 수가 컬럼의 수와 동일하지 않습니다.
42803 SELECT 또는 HAVING절의 컬럼 참조는 컬럼이 그룹화 컬럼이 아니므로, 유효하지 않습니다. 또는 GROUP BY절의 컬럼 참조가 유효하지 않습니다.
42804 CASE 표현식의 결과 표현식이 호환 가능하지 않습니다.
42805 ORDER BY절의 정수는 결과 테이블의 컬럼을 식별하지 않습니다.
42806 데이터 유형이 호환 가능하지 않으므로, 호스트 변수에 값을 지정할 수 없습니다.
42807 이 오브젝트에 대해서는 INSERT, UPDATE 또는 DELETE가 허용되지 않습니다.
42808 삽입 또는 갱신 조작에서 식별된 컬럼은 갱신 불가능합니다.
42809 식별된 오브젝트는 명령문이 적용되는 오브젝트의 유형이 아닙니다.
42810 기본 테이블이 FOREIGN KEY절에서 식별되지 않습니다.
42811 지정한 컬럼 수가 SELECT절의 컬럼 수와 동일하지 않습니다.
42813 WITH CHECK OPTION을 지정한 뷰에 사용할 수 없습니다.
42815 데이터 유형, 길이, 스케일, 값 또는 CCSID가 유효하지 않습니다.
42816 표현식의 날짜 시간 값 또는 지속기간이 유효하지 않습니다.
42818 연산자 또는 함수의 피연산자가 호환되지 않습니다.
42819 산술 연산의 피연산자 또는 숫자를 요구하는 함수의 피연산자가 숫자가 아닙니다.
42820 숫자 상수가 너무 길거나, 그 값이 해당 데이터 유형의 범위 내에 있지 않습니다.
42821 갱신 또는 삽입 값이 컬럼과 호환되지 않습니다.
42823 하나의 컬럼만 허용되는 서브쿼리로부터 여러 컬럼이 리턴되었습니다.
42824 LIKE의 피연산자가 문자열이 아니거나 첫 번째 피연산자가 컬럼이 아닙니다.
42825 UNION, INTERSECT, EXCEPT 또는 VALUES의 행에 호환되는 컬럼이 없습니다.
42826 UNION, INTERSECT, EXCEPT 또는 VALUES의 행에서 컬럼 수가 동일하지 않습니다.
42827 UPDATE 또는 DELETE에서 식별된 테이블이 커서에 의해 지정된 동일한 테이블이 아닙니다.
42828 UPDATE 또는 DELETE문의 커서에 의해 지정된 테이블을 수정할 수 없거나, 커서가 읽기 전용입니다.
42829 커서에 의해 지정된 결과 테이블을 수정할 수 없으므로 FOR UPDATE OF는 유효하지 않습니다.
42830 외부 키가 상위 키의 설명을 따르지 않습니다.
42831 기본 키 또는 고유 키의 컬럼에 널(NULL) 값이 허용되지 않습니다.
42832 조작이 시스템 오브젝트에 대해 허용되지 않습니다.
42834 외부 키의 컬럼에 널(NULL) 값을 지정할 수 없으므로 SET NULL을 지정할 수 없습니다.
42835 이름 지정된 파생된 테이블(derived table) 간에 순환 참조를 지정할 수 없습니다.
42836 반복적인 이름 지정된 파생된 테이블(derived table)의 스펙이 유효하지 않습니다.
42837 컬럼의 속성이 현재 컬럼 속성과 호환되지 않으므로, 컬럼을 변경할 수 없습니다.
42838 테이블 스페이스의 유효하지 않은 사용이 발견되었습니다.
42839 인덱스 및 긴 컬럼을 해당 테이블과 별도의 테이블 스페이스에 둘 수 없습니다.
42840 AS CAST 옵션의 유효하지 않은 사용이 발견되었습니다.
42841 매개변수 표시문자는 사용자 정의 유형 또는 참조 유형이 될 수 없습니다.
42842 지정한 옵션이 컬럼 설명과 일치하지 않으므로, 컬럼 정의가 유효하지 않습니다.
42845 VARIANT 또는 EXTERNAL ACTION 함수의 유효하지 않은 사용이 발견되었습니다.
42846 소스 유형에서 목표 유형으로의 캐스트가 지원되지 않습니다.
42852 GRANT 또는 REVOKE에 지정된 특권이 유효하지 않거나 일관성이 없습니다(예: 뷰에 대한 GRANT ALTER).
42853 두 가지 방법의 옵션이 지정되었거나 같은 옵션이 두 번 이상 지정되었습니다.
42854 선택 목록의 결과 컬럼 데이터 유형이 유형이 지정된 뷰나 구체화된 쿼리 테이블 정의에 정의된 유형과 호환되지 않습니다.
42855 이 호스트 변수에 대한 LOB의 지정이 허용되지 않습니다. 이 커서의 이 LOB 값에 대한 모든 페치의 목표 호스트 변수는 로케이터이거나 LOB 변수여야 합니다.
42858 조작을 지정된 오브젝트에 적용할 수 없습니다.
42863 REXX에서 정의되지 않은 호스트 변수가 발견되었습니다.
42866 CREATE FUNCTION문 내 CAST FROM절의 RETURNS절에 있는 데이터 유형이 함수 내용에 있는 전래 함수나 RESTURN문에 의해 리턴된 데이터 유형에 적합하지 않습니다.
42867 충돌하는 옵션이 지정되었습니다.
42872 FETCH문 절이 커서 정의와 호환되지 않습니다.
42875 CREATE SCHEMA 내에서 작성할 오브젝트의 규정자가 스키마 이름과 동일해야 합니다.
42877 컬럼 이름을 규정할 수 없습니다.
42878 유효하지 않은 함수 또는 프로시저 이름이 EXTERNAL 키워드에 사용되었습니다.
42879 CREATE FUNCTION문에 있는 하나 이상의 입력 매개변수의 데이터 유형이 소스 함수의 해당 데이터 유형에 적합하지 않습니다.
42880 CAST TO와 CAST FROM 데이터 유형이 호환되지 않거나, 항상 고정 문자열이 절단되게 합니다.
42881 행 기본 함수의 사용이 잘못되었습니다.
42882 특정 인스턴스 이름 규정자가 함수 이름 규정자와 동일하지 않습니다.
42883 시그니처가 일치하는 함수 또는 메소드가 없습니다.
42884 지정된 이름과 호환되는 인수를 갖는 루틴이 없습니다.
42885 CREATE FUNCTION문에 지정된 입력 매개변수 수가 SOURCE절에 이름 지정된 함수에서 제공하는 수와 일치하지 않습니다.
42886 IN, OUT 또는 INOUT 매개변수 속성이 일치하지 않습니다.
42887 함수가 발생한 컨텍스트에서 유효하지 않습니다.
42888 테이블에 기본 키가 없습니다.
42889 테이블에 기본 키가 이미 있습니다.
42890 컬럼 목록이 참조 절에 지정되었으나, 식별된 상위 테이블에 지정된 컬럼 이름을 갖는 고유 제한조건이 없습니다.
42891 중복된 UNIQUE 제한조건이 이미 있습니다.
42893 다른 오브젝트가 종속되어 있기 때문에, 오브젝트 또는 제한조건을 삭제할 수 없습니다.
42894 DEFAULT 값이 유효하지 않습니다.
42895 정적 SQL의 경우, 입력 호스트 변수의 데이터 유형이 프로시저 또는 사용자 정의 함수(UDF)의 매개변수와 호환 불가능하므로, 해당 입력 호스트 변수를 사용할 수 없습니다.
428A0 사용자 정의 함수(UDF)의 기본이 되는 전래 함수(sourced function)에 오류가 발생했습니다.
428A1 호스트 파일 변수가 참조하는 파일에 액세스할 수 없습니다.
428A2 테이블에 파티션 키가 없으므로 테이블을 다중 노드로 구성된 노드 그룹에 지정할 수 없습니다.
428A3 이벤트 모니터에 유효하지 않은 경로가 지정되었습니다.
428A4 이벤트 모니터 옵션에 유효하지 않은 값이 지정되었습니다.
428A5 SET INTEGRITY문에 이름 지정된 예외 테이블이 적당한 구조로 되어 있지 않거나, 생성된 컬럼, 제한조건 또는 트리거와 함께 정의되었습니다.
428A6 SET INTEGRITY문에 이름 지정된 예외 테이블은 점검될 테이블 중 어느 것과도 같아서는 안됩니다.
428A7 점검 중인 테이블의 수와 SET INTEGRITY문에 지정된 예외 테이블의 수가 일치하지 않습니다.
428A8 상위 테이블이 점검 보류(check-pending) 상태에 있는 동안에는 하위 테이블에 SET INTEGRITY문을 사용하여 점검 보류 상태를 재설정할 수 없습니다.
428A9 노드 범위가 유효하지 않습니다.
428AA 컬럼 이름이 이벤트 모니터 테이블에 유효한 컬럼이 아닙니다.
428B0 ROLLUP, CUBE 또는 GROUPING SETS 내에 잘못된 중첩(nesting)이 있습니다.
428B1 특정 노드에 대해 지정되지 않은 테이블 스페이스 컨테이너 스펙의 수가 올바르지 않습니다.
428B2 컨테이너에 대한 경로 이름이 유효하지 않습니다.
428B3 유효하지 않은 SQLSTATE가 지정되었습니다.
428B7 SQL문에 지정된 번호가 유효한 범위를 벗어납니다.
428BO 페더레이티드 데이터 소스에 대한 플랜이 작성 가능하지 않습니다.
428C0 노드 그룹의 유일한 노드이므로 노드를 삭제할 수 없습니다.
428C1 하나의 ROWID 컬럼만이 테이블에 대해 지정될 수 있습니다.
428C2 함수 내용의 검사는 제공된 절이 CREATE FUNCTION문에서 지정되어야 함을 나타냅니다.
428C4 술어 연산자의 양쪽에 있는 요소의 수가 동일하지 않습니다.
428C5 데이터 소스로부터 데이터 유형에 대한 데이터 유형 맵핑을 찾을 수 없습니다.
428C9 ROWID 컬럼은 INSERT 또는 UPDATE의 목표 컬럼으로서 지정될 수 없습니다.
428CA 추가 모드에 있는 테이블에는 클러스터된 인덱스가 있을 수 없습니다.
428CB 테이블 스페이스의 페이지 크기는 연관된 버퍼 풀의 페이지 크기와 일치해야 합니다.
428D1 DATALINK 값이 참조하는 파일에 액세스할 수 없습니다.
428D4 FOR문에 지정된 커서는 OPEN, CLOSE 또는 FETCH문에서 참조될 수 없습니다.
428D5 끝 레이블이 시작 레이블과 일치하지 않습니다.
428D6 UNDO는 NOT ATOMIC문에는 허용되지 않습니다.
428D7 조건 값이 허용되지 않습니다.
428D8 SQLSTATE 또는 SQLCODE 변수의 선언 또는 사용이 유효하지 않습니다.
428DB 오브젝트가 슈퍼 유형, 슈퍼 테이블 또는 슈퍼 뷰로 유효하지 않습니다.
428DC 함수 또는 메소드가 이 유형에 대한 변환으로 유효하지 않습니다.
428DD 필수 변환이 정의되지 않았습니다.
428DE PAGESIZE 값은 지원되지 않습니다.
428DF CREATE CAST에서 지정된 데이터 유형이 유효하지 않습니다.
428DG CREATE CAST에서 지정된 함수가 유효하지 않습니다.
428DH 유형 지정된 테이블에 대해 조작이 유효하지 않습니다.
428DJ 상속된 컬럼 또는 속성은 변경하거나 삭제할 수 없습니다.
428DK 참조 컬럼의 범위(scope)가 이미 정의되었습니다.
428DL 외부 또는 전래 함수의 매개변수의 범위(scope)가 정의되었습니다.
428DM 범위 테이블이나 뷰가 참조 유형에 유효하지 않습니다.
428DN SCOPE가 외부 함수의 RETURNS절에 지정되지 않았거나 전래 함수의 RETURNS절에 지정되었습니다.
428DP 유형이 구조화된 유형이 아닙니다.
428DQ 서브테이블이나 서브뷰는 슈퍼 테이블이나 슈퍼 뷰와 다른 스키마 이름을 가질 수 없습니다.
428DR 조작은 서브테이블에 적용될 수 없습니다.
428DS 지정된 컬럼의 인덱스가 서브테이블에서 정의될 수 없습니다.
428DT 표현식의 피연산자가 유효한, 범위 지정된 참조 유형이 아닙니다.
428DU 유형이 필수 유형 계층 구조에 포함되지 않습니다.
428DV 비참조 연산자의 왼쪽 피연산자가 유효하지 않습니다.
428DW 오브젝트 ID 컬럼은 비참조 연산자를 사용하여 참조될 수 없습니다.
428DX 유형이 지정된 테이블이나 유형이 지정된 뷰 계층 구조의 루트 테이블이나 루트 뷰를 정의하는 데 오브젝트 ID 컬럼이 필요합니다.
428DY 목표 오브젝트 유형에 대한 통계를 갱신할 수 없습니다.
428DZ 오브젝트 ID 컬럼을 갱신할 수 없습니다.
428E0 인덱스 정의가 인덱스 확장의 정의와 일치하지 않습니다.
428E1 범위 생성 테이블 함수의 결과가 인덱스 확장에 대한 키 변환 테이블 함수와 일치하지 않습니다.
428E2 키 목표 매개변수의 숫자나 유형이 인덱스 확장에 대한 키 변환 함수의 숫자나 유형과 일치하지 않습니다.
428E3 인덱스 확장에서 함수에 대한 인수가 유효하지 않습니다.
428E4 함수는 CREATE INDEX EXTENSION문에서 지원되지 않습니다.
428E5 SELECTIVITY절은 사용자 정의 술어를 사용해서만 지정될 수 있습니다.
428E6 사용자 정의 술어에 있는 메소드의 검색 인수가 인덱스 확장의 해당 검색 메소드의 인수와 일치하지 않습니다.
428E7 사용자 정의 술어에서 비교 연산자 다음에 오는 피연산자 유형이 RETURNS 데이터 유형과 일치하지 않습니다.
428E8 검색 목표 또는 검색 인수 매개변수가 작성되는 함수의 매개변수 이름과 일치하지 않습니다.
428E9 인수 매개변수 이름은 같은 작성 규칙에서 검색 목표와 검색 인수로 모두 나타날 수 없습니다.
428EA 유형이 지정된 뷰에서 fullselect가 유효하지 않습니다.
428EB 서브뷰의 컬럼은 슈퍼 뷰의 해당 컬럼이 갱신 가능할 때만 읽을 수 없습니다.
428EC 구체화된 쿼리 테이블에 대해 지정된 fullselect가 유효하지 않습니다.
428ED 데이터 링크 또는 참조 유형 속성의 구조화된 유형을 구성할 수 없습니다.
428EE 옵션이 이 데이터 소스에 유효하지 않습니다.
428EF 옵션 값이 이 데이터 소스에 유효하지 않습니다.
428EG 이 데이터 소스에 대한 필수 옵션이 누락되었습니다.
428EH 이미 정의되어 있는 옵션을 추가할 수 없습니다.
428EJ 추가되지 않은 옵션을 설정 또는 삭제할 수 없습니다.
428EK 선언된 전역 임시 테이블 이름에 대한 규정자는 SESSION이어야 합니다.
428EL 변환 함수는 함수 또는 메소드와 함께 사용할 수 없습니다.
428EM TRANSFORM GROUP절이 필요합니다.
428EN 사용되지 않은 변환 그룹이 지정되었습니다.
428EP 구조화된 유형은 직접적이든 간접적이든 자신에게 종속될 수 없습니다.
428EQ 루틴의 리턴 유형이 주제 유형과 동일하지 않습니다.
428ER 메소드 본문을 제거하기 전에 메소드 스펙을 제거할 수 없습니다.
428ES 메소드 본문이 메소드 스펙의 언어 유형에 해당하지 않습니다.
428EU TYPE 또는 VERSION이 서버 정의에 지정되어 있지 않습니다.
428EV 데이터 소스 유형에는 pass-through 기능이 지원되지 않습니다.
428EW 테이블을 요약 테이블로 또는 구체화된 쿼리 테이블을 테이블로 변환할 수 없습니다.
428EX 루틴이 내장 함수 또는 메소드이기 때문에 변환 함수로 사용될 수 없습니다.
428EY 사용자 정의 술어에 있는 검색 목표의 데이터 유형이 지정된 인덱스 확장의 소스 키에 대한 데이터 유형과 일치하지 않습니다.
428EZ OLAP 함수의 창 스펙이 유효하지 않습니다.
428F0 ROW 함수는 컬럼을 두 개 이상을 포함해야 합니다.
428F1 SQL TABLE 함수는 테이블 결과를 리턴해야 합니다.
428F2 SQL 프로시저에서 RETURN문 값의 데이터 유형은 INTEGER여야 합니다.
428F3 SCROLL과 WITH RETURN은 함께 사용할 수 없습니다.
428F4 FETCH문에 지정된 SENSITIVITY는 이 커서에 사용할 수 없습니다.
428F6 커서가 화면 이동 커서이지만, 결과 테이블에 테이블 함수의 출력이 포함됩니다.
428F7 SQL 루틴에만 적용하는 조작이 외부 루틴에서 시도되었습니다.
428F9 이 컨텍스트에서는 시퀀스 표현식을 지정할 수 없습니다.
428FA 10진수의 스케일은 0이어야 합니다.
428FB sequence-name은 식별 컬럼용으로 시스템이 생성한 시퀀스여서는 안됩니다.
428FC ENCRYPTION PASSWORD의 길이가 유효하지 않습니다.
428FD 암호 해독에 사용된 암호가 데이터를 암호화할 때 사용된 암호와 일치하지 않습니다.
428FE 이 데이터는 ENCRYPT 함수의 결과가 아닙니다.
428FF 버퍼 풀 스펙이 유효하지 않습니다.
428FG 스테이징 테이블을 정의하는 데 사용된 테이블이 유효하지 않습니다.
428FH SET INTEGRITY 옵션이 유효하지 않습니다.
428FI ORDER OF가 지정되었으나, 테이블 지정자에 ORDER BY절이 없습니다.
428FJ 뷰 또는 구체화된 쿼리 테이블의 외부 fullselect에서는 ORDER BY가 허용되지 않습니다.
428FL SQL 데이터 변경 명령문이 지정된 컨텍스트에서 허용되지 않습니다.
428FM SELECT 내의 INSERT문에 대칭 뷰가 아닌 뷰가 지정되었습니다.
428FP 주제 뷰에서 각 조작에 대해 하나의 INSTEAD OF 트리거가 허용됩니다.
428FQ INSTEAD OF 트리거는 WITH CHECK OPTION을 사용하여 정의된 뷰, WITH CHECK OPTION이 정의된 다른 뷰에 정의된 뷰 또는 WITH ROW MOVEMENT절을 사용하여 정의된 뷰에 중첩된 뷰를 지정해서는 안됩니다.
428FU FROM SQL 변환 함수 또는 메소드로부터 리턴된 내장 유형이 TO SQL 변환 함수 또는 메소드의 해당하는 내장 유형과 일치하지 않습니다.
428FV 메소드를 중첩 메소드로 정의할 수 없습니다.
428FZ 일부 조작에 대해서만 정의된 INSTEAD OF 트리거가 있는 뷰는 MERGE문에서 목표로 사용할 수 없습니다.
428G3 fullselect에서 SQL 데이터 변경 명령문의 목표 뷰에 INSTEAD OF 트리거가 정의되어 있는 경우 최종 테이블은 유효하지 않습니다.
428G4 INPUT SEQUENCE 순서가 잘못 사용되었습니다.
428G5 UPDATE문의 지정 절은 INCLUDE 컬럼이 아닌 컬럼을 최소한 하나 이상 지정해야 합니다.
428G6 fullselect의 FROM절에서 데이터 변경 명령문의 목표로부터 선택할 수 없는 컬럼이 지정되었습니다.
428G8 뷰를 쿼리 최적화에 사용할 수 없습니다.
428GA 페더레이티드 옵션은 추가, 삭제 또는 변경될 수 없습니다.
42901 컬럼 함수에 컬럼 이름이 포함되어 있지 않습니다.
42903 WHERE절이나 SET절에 컬럼 함수와 같은 유효하지 않은 참조가 들어 있습니다.
42904 컴파일 오류로 인해 SQL 프로시저를 작성할 수 없습니다.
42907 문자열이 너무 깁니다.
42908 명령문에 필요한 컬럼 목록이 포함되어 있지 않습니다.
42910 명령문이 복합 명령문에서 허용되지 않습니다.
42911 10진수 나눗셈 조작의 결과로 스케일이 음수가 되므로, 10진수 나눗셈 조작은 유효하지 않습니다.
42912 컬럼이 커서의 SELECT문의 UPDATE절에서 식별되지 않으므로, 이 컬럼을 갱신할 수 없습니다.
42914 서브쿼리에서 참조되는 테이블이 조작에 의해 영향을 받을 수 있으므로, DELETE가 유효하지 않습니다.
42915 유효하지 않은 참조 제한조건이 발견되었습니다.
42916 별명을 작성하면 별명이 반복적인 체인을 이루므로 별명을 작성할 수 없습니다.
42917 오브젝트를 명시적으로 삭제 또는 변환할 수 없습니다.
42918 사용자 정의 데이터 유형(UDT)을 시스템 정의 데이터 유형(예: INTEGER) 이름으로 작성할 수 없습니다.
42919 중첩된 복합 명령문은 허용되지 않습니다.
42921 테이블 스페이스에 컨테이너를 추가할 수 없습니다.
42925 반복적인 이름 지정된 파생된 테이블(derived table)은 SELECT DISTINCT를 지정할 수 없으며, UNION ALL을 지정해야 합니다.
42928 테이블에 대해 WITH EMPTY TABLE을 지정할 수 없습니다.
42932 프로그램 준비 가정(assumption)이 올바르지 않습니다.
42939 지정된 ID는 시스템에서 사용하기 위해 예약되어 있으므로, 이름을 사용할 수 없습니다.
42961 지정된 서버 이름이 현재 서버와 일치하지 않습니다.
42962 긴 컬럼, LOB 컬럼 또는 구조화된 유형은 인덱스, 키 또는 제한조건에서 사용될 수 없습니다.
42968 현재 소프트웨어 라이센스가 없기 때문에 연결에 실패했습니다.
42969 패키지가 작성되지 않았습니다.
42972 조인 조건 또는 MERGE문의 ON절에서 표현식은 둘 이상의 피연산자 테이블의 컬럼을 참조합니다.
42985 명령문이 루틴에서 허용되지 않습니다.
42987 명령문이 프로시저 또는 트리거에서 허용되지 않습니다.
42989 표현식을 기본으로 한 GENERATED 컬럼은 BEFORE 트리거에서는 사용될 수 없습니다.
42991 BOOLEAN 데이터 유형은 현재 내부적으로만 지원됩니다.
42993 컬럼이 정의될 때, 너무 길어서 로그할 수 없습니다.
42994 원시 디바이스(raw device) 컨테이너는 지원되지 않습니다.
42995 요청된 함수가 전역 임시 테이블에 적용되지 않습니다.
42997 기능이 이 버전의 DB2 응용프로그램 리퀘스터, DB2 응용프로그램 서버 또는 이 둘의 조합에서 지원하지 않습니다.
429A0 외부 키는 처음에 로그지 않으므로 정의된 상위 테이블을 참조할 수 없습니다.
429A1 노드 그룹이 테이블 스페이스에 유효하지 않습니다.
429A9 DataJoiner가 SQL문을 처리할 수 없습니다.
429B2 구조화된 유형 또는 컬럼에 지정된 인라인 길이 값이 너무 작습니다.
429B3 오브젝트가 서브테이블에서 정의되지 않을 수도 있습니다.
429B4 데이터 필터 함수는 LANGUAGE SQL 함수가 될 수 없습니다.
429B5 인덱스 확장에서 인스턴스 매개변수의 데이터 유형이 유효하지 않습니다.
429B8 PARAMETER STYLE JAVA에 정의된 루틴은 매개변수 또는 리턴 유형으로서 구조화된 유형을 가질 수 없습니다.
429B9 속성을 지정할 때 DEFAULT 또는 NULL을 사용할 수 없습니다.
429BA FEDERATED 키워드는 페더레이티드 데이터베이스 오브젝트에 대한 참조와 함께 사용되어야 합니다.
429BB 매개변수 또는 변수에 대해 지정된 데이터 유형이 SQL 루틴에서는 지원되지 않습니다.
429BC ALTER TABLESPACE문에 여러 개의 컨테이너 조치가 있습니다.
429BE 기본 키 또는 고유 키가 차원 절에서 컬럼의 서브세트입니다.
429BG 함수는 범위 클러스터 테이블에서 지원되지 않습니다.
429BJ 뷰에서 WITH ROW MOVEMENT가 잘못 사용되었습니다.
429BK 행 이동에 하위 뷰가 포함되므로 뷰 갱신 시도가 유효하지 않습니다.
429BL SQL 데이터를 수정하는 함수가 올바르지 않은 컨텍스트에서 호출되었습니다.
429BO 페더레이티드 데이터 소스에 대한 플랜이 작성 가능하지 않습니다.
429BP 별칭 계산 결과 컬럼이 유효하지 않습니다.

클래스 코드 44 WITH CHECK OPTION 위반

표 31. 클래스 코드 44: WITH CHECK OPTION 위반
SQLSTATE 값  
의미
44000 결과 행이 뷰 정의를 충족시키지 않으므로, 삽입이나 갱신 조작이 허용되지 않습니다.

클래스 코드 46 Java DDL

표 32. 클래스 코드 46: Java DDL
SQLSTATE 값  
의미
46001 Java DDL - 유효하지 않은 URL.
46002 Java DDL - 유효하지 않은 jar 이름.
46003 Java DDL - 유효하지 않은 클래스 삭제.
46007 Java DDL - 유효하지 않은 시그니처.
46008 Java DDL - 유효하지 않은 메소드 스펙.
46103 Java 루틴에 ClassNotFound 예외가 발생했습니다.
46501 Java DDL - 선택적 구성요소가 구현되지 않았습니다.

클래스 코드 51 유효하지 않은 응용프로그램 상태

표 33. 클래스 코드 51: 유효하지 않은 응용프로그램 상태
SQLSTATE 값  
의미
51002 SQL문 실행 요청에 해당되는 패키지가 없습니다.
51003 일관성 토큰이 일치하지 않습니다.
51004 SQLDA의 주소가 유효하지 않습니다.
51005 이전 시스템 오류로 인해 이 기능이 작동 불가능하게 되었습니다.
51008 프리컴파일된 프로그램의 릴리스 번호가 유효하지 않습니다.
51015 바인드 시 오류가 발견된 섹션을 실행하려고 했습니다.
51017 사용자가 로그온되지 않았습니다.
51021 응용프로그램 프로세스에서 롤백 작업을 처리할 때까지 SQL문을 실행할 수 없습니다.
51022 CONNECT문에 이름 지정된 서버로의 연결(현재 또는 비활동)이 이미 존재하면, 권한 부여 이름을 지정하는 CONNECT가 유효하지 않습니다.
51023 데이터베이스가 데이터베이스 관리 프로그램의 다른 인스턴스에서 이미 사용 중입니다.
51024 뷰가 작동 불능으로 표시되어, 이를 사용할 수 없습니다.
51025 XA 트랜잭션 처리 환경의 응용프로그램은 SYNCPOINT TWOPHASE로 바인드되지 않습니다.
51026 이벤트 모니터의 목표 경로를 이미 다른 이벤트 모니터에서 사용 중이므로, 이 이벤트 모니터를 작동시킬 수 없습니다.
51027 테이블이 사용자 유지보수 구체화된 쿼리 테이블이거나, 점검 보류 상태가 아니므로 SET INTEGRITY문의 IMMEDIATE CHECKED 옵션이 유효하지 않습니다.
51028 패키지가 작동 불능으로 표시되어 이를 사용할 수 없습니다.
51030 ALLOCATE CURSOR 또는 ASSOCIATE LOCATORS문에서 참조되는 프로시저가 응용프로그램 프로세스에서 호출되지 않았습니다.
51034 MODIFIES SQL DATA로 정의된 루틴이 이 루틴이 호출된 컨텍스트에서 유효하지 않습니다.
51035 이 세션에서 시퀀스에 대해 값이 생성되지 않았으므로 PREVVAL 표현식을 사용할 수 없습니다.
51038 루틴에서 더 이상 SQL문을 발행하지 못할 수 있습니다.
51039 ENCRYPTION PASSWORD 값이 설정되지 않았습니다.
51040 유효하지 않은 컴파일 환경.

클래스 코드 53 유효하지 않은 피연산자 또는 불일치 스펙

표 34. 클래스 코드 53: 유효하지 않은 피연산자 또는 불일치 스펙
SQLSTATE 값  
의미
53040 지정된 버퍼 풀이 지정된 데이터베이스 파티션에 존재하지 않습니다.
53090 하나의 코드화 체계(ASCII, EBCDIC 또는 유니코드)의 데이터만 같은 SQL문에서 참조될 수 있습니다.
53091 지정된 코드화 체계가 포함하는 오브젝트에 현재 사용 중인 코드화 체계와 동일하지 않습니다.

클래스 코드 54 SQL 또는 제품 한계가 초과됨

표 35. 클래스 코드 54: SQL 또는 제품 한계가 초과됨
SQLSTATE 값  
의미
54001 명령문이 너무 길거나 너무 복잡합니다.
54002 문자열 상수가 너무 깁니다.
54004 명령문에 테이블 이름이 너무 많거나 SELECT 또는 INSERT 목록에 항목이 너무 많습니다.
54006 병합의 결과가 너무 깁니다.
54008 키가 너무 길거나 키에 너무 많은 컬럼이 있거나 키 컬럼이 너무 깁니다.
54010 테이블의 레코드 길이가 너무 깁니다.
54011 테이블이나 뷰에 대해 컬럼이 너무 많이 지정되었습니다.
54023 함수 또는 프로시저에 대한 매개변수나 인수의 수에 대한 한계가 초과되었습니다.
54028 최대 동시 LOB 핸들 수에 도달했습니다.
54029 최대 열린 디렉토리 스캔 수에 도달했습니다.
54030 최대수의 이벤트 모니터가 이미 사용 중입니다.
54031 최대 파일 수가 이벤트 모니터에 이미 지정되었습니다.
54032 최대 테이블 크기에 도달했습니다.
54033 최대 파티션 맵의 수에 도달했습니다.
54034 테이블 스페이스에 대한 모든 컨테이너 이름의 길이 합계가 너무 깁니다.
54035 내부 오브젝트 한계를 초과했습니다.
54036 컨테이너 또는 스토리지 경로의 경로 이름이 너무 깁니다.
54037 테이블 스페이스에 대한 컨테이너 맵(map)이 너무 복잡합니다.
54038 중첩된 루틴 또는 트리거의 최대 용량을 초과했습니다.
54045 유형 계층 구조의 최대 레벨을 초과했습니다.
54046 인덱스 확장에서 허용된 최대 매개변수가 초과되었습니다.
54047 테이블 스페이스의 최대 크기에 도달했습니다.
54048 페이지 크기가 충분한 임시 테이블 스페이스가 없습니다.
54049 구조화된 유형의 인스턴스 길이가 시스템 한계를 초과합니다.
54050 구조화된 유형에서 최대 허용 속성이 초과되었습니다.
54052 버퍼 풀의 블록 페이지 수가 버퍼 풀의 크기에 비해 너무 큽니다.
54053 BLOCKSIZE에 지정된 값이 유효한 범위내에 있지 않습니다.

클래스 코드 55 오브젝트가 전제(prerequisite) 상태에 있지 않음

표 36. 클래스 코드 55: 오브젝트가 전제(prerequisite) 상태에 있지 않음
SQLSTATE 값  
의미
55001 데이터베이스를 이주해야 합니다.
55002 설명 테이블이 적절하게 정의되어 있지 않습니다.
55006 오브젝트는 현재 같은 응용프로그램 프로세스에서 사용 중이므로 삭제할 수 없습니다.
55007 오브젝트는 현재 같은 응용프로그램 프로세스에서 사용 중이므로 변경할 수 없습니다.
55009 시스템이 읽기 전용 파일 또는 쓰기 보호된 디스켓에 쓰려고 했습니다.
55012 클러스터링 인덱스가 이미 테이블에 있습니다.
55019 테이블이 조작에 유효하지 않은 상태입니다.
55022 파일 서버가 데이터베이스에 등록되지 않았습니다.
55023 루틴을 호출할 때 오류가 발생했습니다.
55024 테이블 관련 데이터가 다른 테이블 스페이스에도 있기 때문에 이 테이블 스페이스를 삭제할 수 없습니다.
55025 데이터베이스를 재시작해야 합니다.
55026 임시 테이블 스페이스는 삭제할 수 없습니다.
55031 오류 맵핑 파일의 형식이 올바르지 않습니다.
55032 이 응용프로그램이 시작된 이후 데이터베이스 관리 프로그램이 중지되었기 때문에 CONNECT문은 유효하지 않습니다.
55033 이벤트 모니터가 작성 또는 수정된 같은 작업 단위(UOW)에서 이벤트 모니터를 활성화할 수 없습니다.
55034 이벤트 모니터가 조작에 유효하지 않은 상태입니다.
55035 테이블이 보호되어 있으므로 삭제할 수 없습니다.
55036 노드가 파티션 맵에서 제거되지 않았기 때문에 삭제할 수 없습니다.
55037 테이블이 다중 노드로 구성된 노드 그룹에 있기 때문에 파티션 키를 삭제할 수 없습니다.
55038 노드 그룹은 재조정(rebalance)되는 중이므로 사용할 수 없습니다.
55039 테이블 스페이스가 적절한 상태에 있지 않기 때문에 액세스 또는 상태 변화가 허용되지 않습니다.
55041 재조정이 수행되는 동안에는 컨테이너를 테이블 스페이스에 추가할 수 없습니다.
55043 구조화된 유형에 근거하는 유형이 지정된 테이블 또는 유형이 지정된 뷰가 있는 경우 이러한 유형의 속성은 변경할 수 없습니다.
55045 필요한 구성요소가 서버에서 사용 가능하지 않으므로 루틴에 대한 SQL 아카이브(SAR) 파일을 작성할 수 없습니다.
55046 지정된 SQL 아카이브가 목표 환경과 일치하지 않습니다.
55047 외부 함수 또는 메소드가 페더레이티드 오브젝트에 액세스하려고 했습니다.
55048 암호화된 데이터는 암호화할 수 없습니다.
55049 이벤트 모니터 테이블이 제대로 정의되지 않았습니다.
55051 ALTER BUFFERPOOL문이 현재 진행 중입니다.
55054 메소드를 중첩 메소드로 정의할 수 없습니다.
55056 데이터베이스를 페더레이션에 사용할 수 없으므로 별칭 통계를 갱신할 수 없습니다.
55060 데이터베이스에 대해 자동 스토리지가 정의되지 않았습니다.
55061 자동 스토리지 테이블 스페이스의 경로 재지정 리스토어가 허용되지 않습니다.
55062 자동 스토리지에 데이터베이스를 사용할 수 없기 때문에 스토리지 경로가 제공될 수 없습니다.

클래스 코드 56 기타 SQL 또는 제품 오류

표 37. 클래스 코드 56: 기타 SQL 또는 제품 오류
SQLSTATE 값  
의미
56031 이 시스템에서는 혼합 및 DBCS 데이터가 지원되지 않기 때문에 절 또는 스칼라 함수는 유효하지 않습니다.
56033 Long 문자열 컬럼의 삽입 또는 갱신 값은 호스트 변수 또는 널(NULL)이어야 합니다.
56038 이 환경에서는 요청된 기능이 지원되지 않습니다.
56072 후속 SQL문을 실행하는 데 영향을 미치지 못하는 하위 레벨 서버에서 지원하지 않는 함수로 인해 실행하지 못했습니다.
56084 LOB 데이터는 DRDA에서 지원되지 않습니다.
56091 복합 SQL문의 실행 결과로 여러 가지 오류가 발생했습니다.
56092 인증 이름이 사용자 ID 또는 그룹 ID이기 때문에 인증 유형을 판별할 수 없습니다.
56095 바인드 옵션이 유효하지 않습니다.
56097 LONG VARCHAR와 LONG VARGRAPHIC 필드는 DEVICE에서 빌드된 TABLESPACE에서 허용되지 않습니다.
56098 내재 리바인드 또는 준비 중에 오류가 발생했습니다.
56099 REAL 데이터 유형은 목표 데이터베이스에서 지원하지 않습니다.
560A0 LOB 값에 대한 조치가 실패했습니다.
560AA 이 시스템에서는 UCS-2가 지원되지 않기 때문에 절 또는 스칼라 함수는 유효하지 않습니다.
560AC 지정된 유형 또는 데이터 소스 버전에 대해서는 랩퍼 정의를 사용할 수 없습니다.
560AF 게이트웨이 집중기를 사용할 때 PREPARE문이 지원되지 않습니다.
560B0 테이블 스페이스 또는 테이블 스페이스 컨테이너 크기 재지정에 대해 새 크기 값이 유효하지 않습니다.
560B1 스토어드 프로시저에 유효하지 않은 커서 스펙이 있습니다.
560B7 복수 행 INSERT의 경우, 시퀀스 표현식의 사용법은 각 행에 대해 동일해야 합니다.
560BB 동적으로 준비되는 CALL문의 INOUT 매개변수에서는 USING절과 INTO절에 같은 호스트 변수를 사용해야 합니다.
560BC 파일에 액세스하는 중에 오류가 발생했습니다.
560BD 페더레이티드 서버가 데이터 소스에서 예기치 않은 오류 코드를 수신했습니다.
560BF 암호화 기능이 사용 불가능합니다.
560C0 유니코드 코드화 체계로 작성된 테이블은 SQL 함수 또는 SQL 메소드에 사용할 수 없습니다.
560C1 유니코드 코드화 체계로 작성된 테이블은 유형이 지정된 테이블이 되거나, 그래픽 유형 또는 사용자 정의 유형을 포함할 수 없습니다.
560C2 삭제된 테이블에 대한 실행기록 파일 항목을 쓰는 데 실패했습니다.
560C3 이후 트리거는 INSERT문에 삽입 중인 행을 수정할 수 없습니다.
560C6 참조 제한조건이 fullselect 내의 SQL 데이터 변경 명령문에서 수정한 행을 수정할 수 없습니다.
560C8 일부 별칭 통계를 갱신할 수 없습니다.
560C9 지정된 명령문을 설명할 수 없습니다.
560CA SQL문이 현재 데이터베이스 파티션에서만 실행될 수 있는 루틴을 참조합니다.

클래스 코드 57 자원이 사용 가능하지 않거나 조작원이 개입함

표 38. 클래스 코드 57: 자원이 사용 가능하지 않거나 조작원이 개입함
SQLSTATE 값  
의미
57001 테이블에 1차 인덱스가 없기 때문에 이 테이블을 사용할 수 없습니다.
57003 지정된 버퍼 풀이 활성화되지 않았습니다.
57007 DROP 또는 ALTER가 보류 중이므로 오브젝트를 사용할 수 없습니다.
57009 가상 스토리지 또는 데이터베이스 자원이 임시로 사용 불가능하게 되었습니다.
57011 가상 스토리지 또는 데이터베이스 자원을 사용할 수 없습니다.
57012 데이터베이스가 아닌 다른 자원을 사용할 수 없습니다. 이는 후속 명령문의 정상적인 실행에 영향을 주지 않습니다.
57013 데이터베이스가 아닌 다른 자원을 사용할 수 없습니다. 이는 후속 명령문의 정상적인 실행에 영향을 주지 않습니다.
57014 처리가 요청된 대로 취소되었습니다.
57016 테이블이 활성화되지 않으므로 액세스할 수 없습니다.

해결:  db2 접속하여  reorg table 테이블명
57017 문자 변환이 정의되지 않았습니다.
57019 자원 문제점으로 인해 명령문이 실패했습니다.
57020 데이터베이스가 들어 있는 드라이브가 잠겨 있습니다.
57021 디스켓 드라이브 문이 열려 있습니다.
57022 명령문의 권한 부여 ID가 적절한 DB 스페이스를 소유하지 않으므로 테이블을 작성할 수 없습니다.
57030 응용프로그램 서버(AS)로의 연결이 정의된 설치 한계를 초과했습니다.
57032 최대수의 동시 데이터베이스가 시작되었습니다.
57033 자동 롤백 없이 교착 상태 또는 시간종료가 발생했습니다.
57036 트랜잭션 로그가 현재 데이터베이스에 속하지 않습니다.
57046 데이터베이스 또는 인스턴스가 Quiesce 상태이기 때문에 새로운 트랜잭션을 시작할 수 없습니다.
57047 디렉토리에 액세스할 수 없기 때문에 내부 데이터베이스 파일을 작성할 수 없습니다.
57048 테이블 스페이스에 대한 컨테이너에 액세스하는 동안 오류가 발생했습니다.
57049 운영 체제 프로세스 한계에 도달했습니다.
57050 파일 서버가 현재 사용 가능하지 않습니다.
57051 계산된 CPU 비용이 자원 한계를 초과합니다.
57052 노드에 모든 임시 테이블 스페이스에 대한 컨테이너가 없으므로 이 노드를 사용할 수 없습니다.
57053 조작이 충돌되므로 테이블에서 조작을 수행할 수 없습니다.
57055 페이지 크기가 충분한 임시 테이블 스페이스를 사용할 수 없습니다.
57056 데이터베이스가 NO PACKAGE LOCK 모드에 있으므로 패키지를 사용할 수 없습니다.
57057 SQL문 DRDA 체인의 이전 상태로 인해 SQL문을 실행할 수 없습니다.
57059 테이블 스페이스에 지정된 조치에 사용할 수 있는 스페이스가 충분하지 않습니다.

클래스 코드 58 시스템 오류

표 39. 클래스 코드 58: 시스템 오류
SQLSTATE 값  
의미
58004 시스템 오류(후속 SQL문을 정상적으로 실행할 수는 있음)가 발생했습니다.
58005 시스템 오류(후속 SQL문을 정상적으로 실행하지 못하게 함)가 발생했습니다.
58008 후속 DDM 명령 또는 SQL문의 정상적인 실행에는 영향을 주지 않는 분산 프로토콜 오류로 인해 실행에 실패했습니다.
58009 대화가 할당해제되게 만드는 분산 프로토콜 오류로 인해 실행에 실패했습니다.
58010 후속 DDM 명령 또는 SQL 문의 정상적인 실행에 영향을 주는 분산 프로토콜 오류로 인해 실행에 실패했습니다.
58011 바인드 프로세스가 진행되는 동안 DDM 명령이 유효하지 않습니다.
58012 지정된 패키지명과 일치하는 토큰을 사용한 바인드 프로세스가 실행 중이 아닙니다.
58014 DDM 명령이 지원되지 않습니다.
58015 DDM 오브젝트가 지원되지 않습니다.
58016 DDM 매개변수가 지원되지 않습니다.
58017 DDM 매개변수 값이 지원되지 않습니다.
58018 DDM 응답 메시지가 지원되지 않습니다.
58023 시스템 오류로 인해 현재 프로그램이 취소되었습니다.
58030 입출력 오류가 발생했습니다.
58031 시스템 오류로 인해 연결에 실패했습니다.
58032 분리 모드 사용자 정의 함수(UDF)에 대한 프로세스를 사용할 수 없습니다.
58034 DMS 테이블 스페이스에서 오브젝트에 대한 페이지를 찾는 중에 오류가 발견되었습니다.
58035 DMS 테이블 스페이스에서 오브젝트에 대한 빈 페이지를 찾는 중에 오류가 발견되었습니다.
58036 지정된 내부 테이블 스페이스 ID가 없습니다.
ZZZZZ 플레이스 홀더 sqlstate는 개발용으로만 사용하십시오. 코드 이동 전 변경해야 합니다.


출처 : IBM http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/core/r0sttmsg.htm
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[DB2] 컬럼 추가  (0) 2008.06.25
DB2에서 TIMESTAMP 시간 범위 검색  (0) 2008.03.10
SQL IDE(GUI) 에디터들...  (0) 2008.02.05
mysql 컬럼 속성 변경  (0) 2007.10.23
ORACLE - TABLE CACHE  (0) 2007.10.10

반응형
QuestSoft - TOAD  Quest Software
지원 DB -
Toad for Oracle
Toad for SQL Server
Toad for DB2
Toad for MySQL

장점 : 무수히 많은 기능...  / 최고의 사용자 확보 / 해당 DB의 특화된 기능 사용 가능 / ORACLE은 PLSQL지원
단점 : 해당 되는 DBMS버전 사용 가능. / 몇몇 FREE버전 제외하고는.. 유료다.



DbVisualizer 6.0

장점 : 기본적인 기능 모두 가지고 있으며 DB의 종류에 구애 받지 않는다. / TOAD 보단 가볍게 간편하게 쓸수 있다.
단점 : FREEWARE는 기능 제한이 좀 있다.
http://www.dbvis.com/products/dbvis/



SQL Developer - ORACLE

http://www.oracle.com/technology/products/database/sql_developer/index.html


장점 : 오라클 전용 이면서 약간 범용 / MSSQL 마이그레이션 / MySQL 등 사용가능...
단점 : 버그가 아직 좀 많다.




그외 .. AQUA / MS SQL 부록.... 등은 차후...
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

DB2에서 TIMESTAMP 시간 범위 검색  (0) 2008.03.10
IBM DB2 SQLSTATE 메시지 - 오류 코드/에러코드  (0) 2008.02.29
mysql 컬럼 속성 변경  (0) 2007.10.23
ORACLE - TABLE CACHE  (0) 2007.10.10
KEEP 버퍼풀 지침  (0) 2007.10.10

반응형
mysql 컬럼 속성 변경

alter table bbs change column num num int(11) auto_increment primary key;

alter table 테이블명 change column 기존컬럼 바꿀컬럼 데이터형 추가하고자 하는 속성;

반응형

'Computer_IT > DBMS' 카테고리의 다른 글

IBM DB2 SQLSTATE 메시지 - 오류 코드/에러코드  (0) 2008.02.29
SQL IDE(GUI) 에디터들...  (0) 2008.02.05
ORACLE - TABLE CACHE  (0) 2007.10.10
KEEP 버퍼풀 지침  (0) 2007.10.10
Oracle 영역별 HIT RATIO  (0) 2007.10.10

반응형
TABLE 캐쉬 생성 / 확인
사용자 삽입 이미지


TABLE CACHE 해제
사용자 삽입 이미지


반응형

'Computer_IT > DBMS' 카테고리의 다른 글

SQL IDE(GUI) 에디터들...  (0) 2008.02.05
mysql 컬럼 속성 변경  (0) 2007.10.23
KEEP 버퍼풀 지침  (0) 2007.10.10
Oracle 영역별 HIT RATIO  (0) 2007.10.10
Oracle 캐시 적중률 측정  (0) 2007.10.10

반응형

사용자 삽입 이미지

SQL> conn hr/hr
연결되었습니다.
SQL> select segment_name, blocks from user_segments
  2  where segment_name = 'K_EMP';

SEGMENT_NAME
-------------------------------------------------------------
    BLOCKS
----------
K_EMP
         8


SQL> select table_name, blocks, empty_blocks from user_tables
  2  where table_name='K_EMP';

TABLE_NAME                         BLOCKS EMPTY_BLOCKS
------------------------------ ---------- ------------
K_EMP

SQL> analyze table k_emp compute statistics;

테이블이 분석되었습니다.

SQL> select table_name, blocks, empty_blocks from user_tables
  2  where table_name = 'K_EMP';

TABLE_NAME                         BLOCKS EMPTY_BLOCKS
------------------------------ ---------- ------------
K_EMP                                   5            3

SQL> rem KEEP 되는 BLOCK의 갯수 5개....
SQL>

반응형

'Computer_IT > DBMS' 카테고리의 다른 글

mysql 컬럼 속성 변경  (0) 2007.10.23
ORACLE - TABLE CACHE  (0) 2007.10.10
Oracle 영역별 HIT RATIO  (0) 2007.10.10
Oracle 캐시 적중률 측정  (0) 2007.10.10
Northwind and pubs Sample Databases for SQL Server 2000  (0) 2007.10.09

반응형

SQL> show parameter cache_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------
db_16k_cache_size                    big integer 0
db_2k_cache_size                     big integer 0
db_32k_cache_size                    big integer 0
db_4k_cache_size                     big integer 0
db_8k_cache_size                     big integer 0
db_cache_size                        big integer 25165824
db_keep_cache_size                   big integer 0
db_recycle_cache_size                big integer 0
SQL> alter system set db_keep_cache_size=8m;
alter system set db_keep_cache_size=8m
*
1행에 오류:
ORA-02097: 지정된 값이 부적당해서 매개변수를 수정할 수 없습니다
ORA-00384: 캐시를 늘리기 위한 메모리 부족


SQL>

REM 다른 영역을 확보 한다.


사용자 삽입 이미지



SQL> startup
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> alter system set shared_pool_size=20m;
시스템이 변경되었습니다.
SQL> alter system set db_keep_cache_size=8m;
시스템이 변경되었습니다.
SQL> alter system set db_recycle_cache_size=4m;
시스템이 변경되었습니다.
SQL> shutdown
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> startup
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area  118561572 bytes
Fixed Size                   453412 bytes
Variable Size              79691776 bytes
Database Buffers           37748736 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> select name,
  2  1-(physical_reads / (db_block_gets + consistent_gets)) "HIT_RATIO"
  3  FROM sys.v$buffer_pool_statistics
  4  WHERE db_block_gets + consistent_gets > 0
  5  /
NAME                  HIT_RATIO
-------------------- ----------
DEFAULT              .957268554
SQL> create table hr.k_emp
  2  storage(buffer_pool keep)
  3  as
  4  select * from hr.employees;
테이블이 생성되었습니다.
SQL> select count(*) from hr.employees;
  COUNT(*)
----------
       107
SQL> select count(*) from hr.k_emp;
  COUNT(*)
----------
       107
SQL> create table hr.r_emp
  2  storage(buffer_pool recycle)
  3  as select * from hr.employees;
테이블이 생성되었습니다.
SQL> select count(*) from hr.r_emp;
  COUNT(*)
----------
       107
SQL>
SQL> select name,
  2  1- (physical_reads / (db_block_gets + consistent_Gets)) "HIT RATIO"
  3  from sys.v$buffer_pool_statistics
  4  where db_block_gets + consistent_gets > 0
  5  /
NAME                  HIT RATIO
-------------------- ----------
KEEP                 .942857143
RECYCLE              .942857143
DEFAULT              .961784697
SQL>
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

ORACLE - TABLE CACHE  (0) 2007.10.10
KEEP 버퍼풀 지침  (0) 2007.10.10
Oracle 캐시 적중률 측정  (0) 2007.10.10
Northwind and pubs Sample Databases for SQL Server 2000  (0) 2007.10.09
[ORACLE] SharedServer 및 Dispatchers 확인  (0) 2007.03.19

반응형

SELECT 1 - (phy.value - lob.value - dir.value)
/ ses.value  "CACHE HIT RATIO"
    FROM   v$sysstat ses, v$sysstat lob,
           v$sysstat dir, v$sysstat phy
    WHERE  ses.name = 'session logical reads'
    AND    dir.name = 'physical reads direct'
    AND    lob.name = 'physical reads direct (lob)'
    AND    phy.name = 'physical reads'
/


사용자 삽입 이미지


반응형

반응형
Oracle의 Employees 랑 비슷한..
MS-SQL의 학습용 SAMPLE DB

다운로드 경로
http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46A0-8DA2-EEBC53A68034&displaylang=en
반응형

반응형

사용자 삽입 이미지

SharedServer, Dispatcher 확인


Shared Server 구성확인

SQL> SELECT name, status FROM v$shared_server;

Dispatcher 확인

SQL> SELECT name, status FROM v$dispatcher;
반응형

반응형
ORACLE 에서 잠긴 계정 풀기

사용자 삽입 이미지


SQL> alter user hr identified by hr account unlock;
반응형

반응형
사용자 삽입 이미지


명령 : sc delete 서비스명 <-엔터
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[ORACLE] SharedServer 및 Dispatchers 확인  (0) 2007.03.19
ORACLE 에서 잠긴 계정 풀기  (1) 2007.03.16
[Oracle] Cluster 구성  (0) 2006.11.01
[ORACLE] Oracle9i 실행계획 보기  (0) 2006.09.18
ORACLE USER KILL  (0) 2006.09.18

반응형

create cluster test_clu(dno number(2));
SP2-0640: 연결되지 않았습니다.
SQL> conn /as sysdba
연결되었습니다.
SQL> create cluster test_clu(dno number(2));

클러스터가 생성되었습니다.

SQL> create index test_idx on cluster test_clu;

인덱스가 생성되었습니다.

SQL> create table dp
  2  (dno number(2) primary key,
  3  dname varchar2(20))
  4  cluster test_clu(dno);

테이블이 생성되었습니다.

SQL> create table ep
  2  (eno number(3),
  3  dno number(2) references dp)
  4  cluster test_clu(dno)

테이블이 생성되었습니다.

SQL> insert into dp values(10, 'aaa');

1 개의 행이 만들어졌습니다.

SQL> c/10/20
  1* insert into dp values(20, 'aaa')
SQL> c/aaa/bbb
  1* insert into dp values(20, 'bbb')
SQL> /

1 개의 행이 만들어졌습니다.

SQL> insert into ep values(111,10);

1 개의 행이 만들어졌습니다.

SQL> c/111/222
  1* insert into ep values(222,10)
SQL> c/10/20
  1* insert into ep values(222,20)
SQL> /

1 개의 행이 만들어졌습니다.

SQL> c/222/333
  1* insert into ep values(333,20)
SQL> c/20/10
  1* insert into ep values(333,10)
SQL> /

1 개의 행이 만들어졌습니다.

SQL> c/333/444
  1* insert into ep values(444,10)
SQL> c/10/20
  1* insert into ep values(444,20)
SQL> /

1 개의 행이 만들어졌습니다.

SQL> select * from ep;

      ENO        DNO                                                          
---------- ----------                                                          
      111         10                                                          
      333         10                                                          
      222         20                                                          
      444         20                                                          


SQL> select eno, dname from ep, dp where ep.dno=dp.dno;

      ENO DNAME                                                               
---------- ----------------------------------------                            
      111 aaa                                                                 
      333 aaa                                                                 
      222 bbb                                                                 
      444 bbb                                                                 


SQL> desc ep;
이름                                      널?      유형
----------------------------------------- -------- ----------------------------
ENO                                                NUMBER(3)
DNO                                                NUMBER(2)


SQL> select dno, rowid, eno from ep;

      DNO ROWID                     ENO                                       
---------- ------------------ ----------                                       
       10 AAAHcNAABAAAMi6AAA        111                                       
       10 AAAHcNAABAAAMi6AAB        333                                       
       20 AAAHcNAABAAAMi7AAA        222                                       
       20 AAAHcNAABAAAMi7AAB        444                                       

SQL> select dno, rowid from dp;

      DNO ROWID                                                               
---------- ------------------                                                  
       10 AAAHcNAABAAAMi6AAA                                                  
       20 AAAHcNAABAAAMi7AAA                                                  

SQL>

반응형

'Computer_IT > DBMS' 카테고리의 다른 글

ORACLE 에서 잠긴 계정 풀기  (1) 2007.03.16
[ORACLE] 제어판->관리도구->불필요 서비스 삭제  (0) 2007.03.13
[ORACLE] Oracle9i 실행계획 보기  (0) 2006.09.18
ORACLE USER KILL  (0) 2006.09.18
CBO  (0) 2006.08.07

반응형

필요한 스크립트
$ORACLE_HOME/rdbms/admin/utlxplan.sql   실행

SQL> explain plan

set statement_id = 'lab1' for
select *
from emp
where empno = 7777;

SQL> select   id
,        lpad(' ',2*level)||operation
        ||decode(id,0,' Cost = '||position)
        ||' '||options
        ||' '||object_name as "Query Plan"
from     plan_table
where    statement_id = 'lab1'
connect  by prior id=parent_id
start    with id=0;

결과
       ID      Query Plan
----------  --------------------------------------------
        0        SELECT STATEMENT Cost =
        1              TABLE ACCESS BY INDEX ROWID EMP
        2                      INDEX UNIQUE SCAN PK_EMP

반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[ORACLE] 제어판->관리도구->불필요 서비스 삭제  (0) 2007.03.13
[Oracle] Cluster 구성  (0) 2006.11.01
ORACLE USER KILL  (0) 2006.09.18
CBO  (0) 2006.08.07
Oracle® Database SQL Reference  (0) 2006.08.07

반응형

locking된 user kill

ALTER SYSTEM KILL SESSION 'integer1, integer2'

- integer1 : V$SESSION 뷰에서 SID열값  (SID=Session ID)
- integer2 : V$SESSION 뷰에서 SERIAL# 열값

SID, SERIAL# 값 확인

SQL> select sid, serial#, username from v$session
      SID    SERIAL# USERNAME
---------- ---------- ------------------------------------------------------------
        1          1
        2          1
        3          1
        4          1
        5          1
        6          1
        7          1
        8          1
        9          3 SYS
9 개의 행이 선택되었습니다.

KILL 뒤에는 PMON 이 뒤처리 과정을 거친다.
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[Oracle] Cluster 구성  (0) 2006.11.01
[ORACLE] Oracle9i 실행계획 보기  (0) 2006.09.18
CBO  (0) 2006.08.07
Oracle® Database SQL Reference  (0) 2006.08.07
[MySQL] 사용자 추가  (0) 2006.07.09

CBO

Computer_IT/DBMS2006. 8. 7. 19:17
반응형
SQL> alter session set optimizer_mode=rule;

Session altered.

SQL> set autotrace traceonly explain
SQL> select * from employees where department_id=40;

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPLOYEES'
2 1 INDEX (RANGE SCAN) OF 'EMP_DEPARTMENT_IX' (NON-UNIQUE)



SQL> set autotrace off
SQL> alter session set optimizer_mode=all_rows;

Session altered.

SQL> set autotrace traceonly explain
SQL> select * from employees where department_id=40;

Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=3 Bytes=183)

1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPLOYEES' (Cost=2 Card=3 Bytes=183)

2 1 INDEX (RANGE SCAN) OF 'EMP_DEPARTMENT_IX' (NON-UNIQUE) (Cost=1 Card=3)



CBO는 table에 통계정보..
Oracle 은 통계정보 만을 가지고 실행 정보를 작성하기 때문에
통계정보가 잘못되었ㅤ 경우에는 잘못된 실행정보를 생성한다.

몇달전에 Employees 행수가 얼마 많지 않은 상태에서 실행 계획을 작성한것을...
10배정도 데이터가 많아진 상태에서도 이전의 실행계획을 사용한것은 잘못되었음...
그러 경우다시 실행계획을 작성한것으로 적용하여야함...
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[Oracle] Cluster 구성  (0) 2006.11.01
[ORACLE] Oracle9i 실행계획 보기  (0) 2006.09.18
ORACLE USER KILL  (0) 2006.09.18
Oracle® Database SQL Reference  (0) 2006.08.07
[MySQL] 사용자 추가  (0) 2006.07.09

반응형

Oracle® Database SQL Reference 10g Release 1 (10.1)
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[Oracle] Cluster 구성  (0) 2006.11.01
[ORACLE] Oracle9i 실행계획 보기  (0) 2006.09.18
ORACLE USER KILL  (0) 2006.09.18
CBO  (0) 2006.08.07
[MySQL] 사용자 추가  (0) 2006.07.09

반응형
USE mysql
INSERT INTO user VALUES('localhost','아이디',PASSWORD('비밀번호'),'Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

FLUSH PRIVILEGES;

select * from user;

MySQL 사용자 추가
반응형

'Computer_IT > DBMS' 카테고리의 다른 글

[Oracle] Cluster 구성  (0) 2006.11.01
[ORACLE] Oracle9i 실행계획 보기  (0) 2006.09.18
ORACLE USER KILL  (0) 2006.09.18
CBO  (0) 2006.08.07
Oracle® Database SQL Reference  (0) 2006.08.07