DB2의 제약조건

DB2 | 2006. 3. 24. 13:40
Posted by 시반

DB2 기초: 제약조건

 

 


난이도 : 초급

Roman Melnyk, DB2 Information Development, IBM Canada Ltd.

2004 년 1 월 01 일

DB2 UDB에서 사용되는 제약조건은 데이터에 대해 비즈니스 규칙을 시행하고 데이터베이스 무결성을 유지하는데 도움이 된다. 이 글에서는 DB2 UDB에서 지원하는 다양한 제약조건 유형들을 설명한다. 각 제약조건 유형들을 예제를 통해 설명한다. 또한 기본적인 제약조건 관리(명령행 또는 DB2 Control Center 사용)를 설명한다.

DB2 UDB에서 사용되는 제약조건은 데이터에 대해 비즈니스 규칙을 시행한다. 이 글에서는 다음과 같은 유형의 제약조건을 설명한다.

  • NOT NULL
  • 유일(unique)
  • 기본 키
  • 외래 키
  • 테이블 체크
정보형 제약조건(informational constraint)으로 알려진 제약조건도 있다. 위에 열거한 다섯 개의 제약조건과는 달리 정보형 제약조건은 데이터베이스 관리자가 다룰 수 있는 것이 아니다. 쿼리 퍼포먼스를 높이기 위해 SQL 컴파일러에 의해 사용된다. 이 글에서는 위에 열거한 제약조건 유형들에 초점을 맞춰 설명할 것이다. 정보형 제약조건은 다음 기회에 다루기로 한다.

새로운 테이블을 만들 때 한 개 이상의 DB2 UDB 제약조건을 정의하거나, 테이블을 나중에 변경하여 몇 가지 제약조건을 정의할 수 있다. CREATE TABLE 문은 매우 복잡하다. 사실 너무 복잡해서 이 옵션들 중 일부가 제약조건 정의에 사용되더라도 신택스 다이어그램에서 볼 때에는 옵션들 자체로도 매우 복잡해보인다. (그림 1, 그림 2) 제약조건 관리는 DB2 Control Center를 통해 수행될 때 보다 편리하고 단순해질 수 있다.


그림 1. CREATE TABLE 문의 신택스 일부– 제약조건을 정의하는데 사용되는 구문을 보여주고 있다.

제약조건 정의는 이 정의가 적용될 데이터베이스와 제휴되고 데이터베이스 카탈로그에 저장된다.(표 1) 데이터베이스 카탈로그를 쿼리하여 정보들을 가져와서 검사한다. 명령행에서 직접 수행할 수 있고(물론, 데이터베이스에 먼저 연결해야 한다.), 또는 Control Center를 통해서 보다 편리하게 정보에 액세스 한다.

여러분이 만든 제약조건은 데이터베이스 객체들 처럼 다루어진다. 이름이 붙여지며, 제휴 스키마(생성자 ID)를 갖게 되며, 어떤 경우에는 제거(삭제)될 수도 있다.


그림 2. CREATE TABLE 문의 신택스 일부 – 제약조건을 정의하는데 사용되는 구문을 보여주고 있다. (계속)

표 1. 데이터베이스 카탈로그에 있는 제약조건 정보. 성공적으로 실행하려면 그 카탈로그에 대한 쿼리에는 데이터베이스 연결이 필요하다.

Catalog View View Column 설명 쿼리 예제
SYSCAT.CHECKS 각 테이블 체크 제약조건에 대한 열이 포함된다. db2 select constname, tabname, text from syscat.checks
SYSCAT.COLCHECKS 테이블 체크 제약조건에 의해 참조되는 각 칼럼에 대한 열을 포함하고 있다. db2 select constname, tabname, colname, usage from syscat.colchecks
SYSCAT.COLUMNS NULLS 칼럼이 무효인지(Y), 무효가 아닌지(N)를 나타낸다. db2 select tabname, colname, nulls from syscat.columns where tabschema = 'MELNYK' and nulls = 'N'
SYSCAT.CONSTDEP 몇 가지 다른 객체에 해당하는 제약조건의 종속성에 대한 열을 포함하고 있다. db2 select constname, tabname, btype, bname from syscat.constdep
SYSCAT.INDEXES 각 인덱스에 대한 열을 포함하고 있다. db2 select tabname, uniquerule, made_unique, system_required from syscat.indexes where tabschema = 'MELNYK'
SYSCAT.KEYCOLUSE 유일 키, 기본 키, 외래 키 제약조건으로 정의된 키에 참여한 각 칼럼에 대한 열을 포함하고 있다. db2 select constname, tabname, colname, colseq from syscat.keycoluse
SYSCAT.REFERENCES 각각의 참조 제약조건에 대한 열을 포함하고 있다. db2 select constname, tabname, refkeyname, reftabname, colcount, deleterule, updaterule from syscat.references
SYSCAT.TABCONST 유일 키(U), 기본 키 (P), 외래 키 (F), 테이블 체크 (K) 제약조건에 대한 열을 포함하고 있다. db2 select constname, tabname, type from syscat.tabconst
SYSCAT.TABLES PARENTS 이 테이블의 부모 테이블의 수(이 테이블이 종속되어 있는 참조 제약조건의 수). db2 "select tabname, parents from syscat.tables where parents > 0"
SYSCAT.TABLES CHILDREN 이 테이블의 종속 테이블의 수(이 테이블이 부모가 되는 참조 제약조건의 수). db2 "select tabname, children from syscat.tables where children > 0"
SYSCAT.TABLES SELFREFS 이 테이블에 대한 자가 참조 제약조간의 수(이 테이블이 부모이기도 하고 종속 테이블인 참조 제약조건의 수). db2 "select tabname, selfrefs from syscat.tables where selfrefs > 0"
SYSCAT.TABLES KEYUNIQUE 이 테이블에 정의된 (기본 키 외의) 유일 제약조건의 수. db2 "select tabname, keyunique from syscat.tables where keyunique > 0"
SYSCAT.TABLES CHECKCOUNT 이 테이블에 정의된 체크 제약조건의 수. db2 "select tabname, checkcount from syscat.tables where checkcount > 0"

NOT NULL 제약조건

NOT NULL 제약조건으로 인해 무효(null) 값이 칼럼에 추가될 수 없다. 이것 때문에 칼럼은 테이블의 각 열에 값을 갖게 된다. 예를 들어, SAMPLE 데이터베이스에 있는 EMPLOYEE 테이블의 정의에는 LASTNAME VARCHAR(15) NOT NULL이 포함된다. 이로 인해 각 열에는 사원(EMPLOYEE)의 성(last name)이 포함된다.

칼럼의 무효성 여부를 결정하기 위해서 그 테이블에 대한 데이터 정의 언어(DDL)를 참조할 수 있다. (db2look 유틸리티를 호출하여 생성한다.) DB2 Control Center(그림 34)를 사용해도 된다. 또는 데이터베이스 카탈로그를 쿼리 할 수도 있다. (Listing 1)


그림 3. 특정 데이터베이스와 연결된 테이블은 DB2 Control Center의 컨텐츠 패인에 객체 트리에서 선택된 테이블과 함께 나타난다. 이 리스트는 melnyk 스키마에서 걸려졌다.

DB2 Control Center에서는 테이블 같은 데이터베이스 객체에 편리하게 액세스 할 수 있다. 그림 3은 SAMPLE 데이터베이스의 사용자 테이블 모습이다. Table이 객체 트리에서 선택될 때 컨텐츠 패인에 나타난다. EMPLOYEE 테이블을 선택하면 Alter Table 창을 열어 칼럼 애트리뷰트 등 테이블 정보를 볼 수 있다. (그림 4)


그림 4. Alter Table 윈도우에서는 테이블의 애트리뷰트를 편리하게 볼 수 있다.


Listing 1. 데이터베이스 카탈로그를 쿼리하여 어떤 데이터베이스 칼럼이 무효인지를 파악하기
db2 select tabname, colname, nulls from syscat.columns where tabschema = 'MELNYK' and nulls = 'N'





유일 제약조건

유일 제약조건(unique constraint)은 테이블의 특정 칼럼에 값이 한번 이상 나타나지 않도록 한다. 또한 특정 칼럼 세트 내에 값 세트가 한 번 이상 나타나지 않도록 한다. 유일 제약조건에서 참조되는 칼럼들은 NOT NULL로 정의되어야 한다. 유일 제약조건은 CREATE TABLE 문에서 UNIQUE 구문을 사용하여 정의되거나(그림 12), ALTER TABLE 문으로 정의될 수 있다.


Listing 2. 유일 제약조건 만들기. SAMPLE 데이터베이스에서 ORG_TEMP 테이블은 ORG 테이블과 동일하다. 단, ORG_TEMP의 LOCATION 칼럼은 무효가 될 수 없고 유일 제약조건이 정의된다.
db2> create table org_temp ( 
 deptnumb smallint not null,
 deptname varchar(14),
 manager smallint,
 division varchar(10),
 location varchar(13) not null)
 db2 alter table org_temp
 add unique (location);
db2> insert into org_temp values (10, 'Head Office', 160, 'Corporate', 'New York') ;
DB20000I The SQL command completed successfully.
db2> insert into org_temp values (15, 'New England', 50, 'Eastern', 'New York');
SQL0803N One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "1" constrains table "MELNYK.ORG_TEMP" from having duplicate rows for those columns. SQLSTATE=23505

유일 제약조건은 의도하지 않은 중복을 방지하여 데이터 무결성을 유지시킨다. 우리 예제에서, New York을 그 회사의 지사로 지정하는 두 번째 기록이 삽입되는 것을 방지한다. 유일 제약조건은 유일 인덱스(unique index)를 통해 실행된다.

제약조건 이름

제약조건을 만들 때 이름을 정하지 않았다면 DB2에서 생성시간을 기준으로 이름을 만든다. 예) SQL031229211328410





기본 키(primary key) 제약조건

기본 키 제약조건은 테이블에 대한 기본 키를 구성하고 있는 칼럼이나 칼럼 세트의 모든 값들이 유일(unique)한 값이라는 것을 보장한다. 기본 키는 테이블의 특정 열을 구분하는데 사용된다. 테이블은 한 개 이상의 기본 키를 가질 수 없지만 여러 유일 키를 가질 수는 있다. 기본 키 제약조건은 유일 제약조건의 특별한 경우이며 기본 인덱스(primary index)를 통해 실행된다.

기본 키 제약조건에 참조된 칼럼들은 NOT NULL로 정의되어야 한다. 기본 키 제약조건은 PRIMARY KEY 구문을 사용하여 CREATE TABLE 문으로 정의되거나(그림 12), ALTER TABLE 문으로 정의된다.


Listing 3. 기본 키 제약조건 만들기. EMPLOYEE 테이블에 있는 EMPNO 칼럼은 무효가 될 수 없고, 여기에 기본 키 제약조건이 정의되어야 한다.
db2 alter table employee add primary key (empno)

대안으로는, DB2 Control Center를 사용하여 테이블에 기본 키 제약조건을 정의하는 방법이 있다. (그림 5)


그림 5. Alter Table 윈도우에서는 테이블에 기본 키 제약조건을 편리하게 정의할 수 있다. 칼럼 리스트에서 한 개 이상의 칼럼을 선택한 다음 push 버튼을 누르고, 그렇게 선택된 칼럼 이름을 기본 키 칼럼 리스트로 이동시킨다. 선택된 칼럼은 무효가 될 수 없다.





외래 키 제약조건

외래 키 제약조건은 참조 제약조건이라고도 불린다. 참조 무결성(Referential integrity)은 "데이터베이스에서 모든 외래 키들의 값이 유효한 상태”로 정의된다. 그렇다면 외래 키는 무엇인가? 외래 키(foreign key)는 테이블에 있는 칼럼이나 칼럼 세트의 값이 부모 테이블의 열에 있는 적어도 한 개의 기본 키나 유일 키 값과 매치하는 것을 의미한다. 더 정확히 말한다면? 테이블(T2)에 있는 칼럼(C2)이 또 다른 테이블(T1)에 있는 칼럼(C1)의 값들과 매치하는 값을 갖고 있고, C1은 T1에 대한 기본 키 칼럼이 되고, C2는 T2의 외래 키 칼럼이 된다는 것을 의미한다. 기본 키(기본 키 또는 유일 키)를 포함하고 있는 테이블을 부모 테이블(parent table)이라 하고, 외래 키를 포함하고 있는 테이블을 종속 테이블(dependent table)이라고 한다.

SAMPLE 데이터베이스에 있는 PROJECT 테이블은 RESPEMP라는 칼럼을 갖고 있다. 이 칼럼에 있는 값은 이 테이블에 수록되어 있는 각 프로젝트를 담당하는 사원들의 수를 나타낸다. RESPEMP는 무효가 될 수 없다. 이 칼럼은 EMPLOYEE 테이블의 EMPNO 칼럼에 상응하고, 우리는 EMPNO가 이제는 EMPLOYEE 테이블에 대한 기본 키라는 것을 알고, RESPEMP는 PROJECT 테이블에서 외래 키로 정의될 수 있기 때문이다.(Listing 4) 따라서 EMPLOYEE 테이블에서 삭제가 실행되면 프로젝트 담당 사원이 없는 PROJECT 테이블은 존재하지 않는다.

외래 키 제약조건은 FOREIGN KEY 구문(그림 12)을 사용하는 CREATE TABLE 문으로 정의되거나, ALTER TABLE 문으로 정의된다.


Listing 4. 외래 키 제약조건 만들기
db2> alter table project add foreign key (respemp) references employee on delete cascade

REFERENCES 구문은 이 참조 제약조건에 대한 부모 테이블을 가리킨다. 외래 키 제약조건을 정의하는 신택스에는 rule-clause가 포함되는데, 바로 여기에서 무결성의 관점에서 업데이트나 삭제 방식을 DB2에 명령할 수 있다.(그림 1)

삽입 작동은 표준 방식으로 다루어진다. 여러분은 이에 대한 제어권이 없다. 참조 제약조건의 삽입 규칙(insert rule)은 외래 키의 삽입 값이 부모 테이블의 부모 키의 값 일부와 매치해야 한다는 것을 지정하고 있다. 새로운 기록이 PROJECT 테이블에 삽입되면 그 기록에는 EMPLOYEE 테이블의 기존 기록에 대한 (부모-외래 키 관계를 통해) 참조를 포함하고 있어야 한다.

참조 제약조건의 업데이트 규칙(update rule)외래 키의 업데이트 값이 부모 테이블의 부모 키의 일부 값과 매치해야 하고, 부모 키에 대한 업데이트 작동이 완료할 때 모든 외래 키 값은 매칭하는 부모 키 값을 갖고 있어야 한다는 것을 지정하고 있다. 다시 말하면, 어떤 "고아"도 없어야 한다. 모든 종속들은 부모가 있어야 한다.

참조 제약조건의 삭제 규칙(delete rule)은 부모 테이블에서 열이 삭제될 때 적용되고, 참조 제약조건이 정의될 때 지정되었던 옵션에 의존한다. RESTRICT나 NO ACTION 구문이 지정되면 어떤 열도 삭제되지 않는다. SET NULL 구문이 지정되면 외래 키의 무효가 가능한 칼럼들이 무효로 설정된다. 하지만 참조 제약조건을 만들 때 CASCADE 옵션을 지정했다면 삭제 작동은 부모 테이블의 자식들에게로 퍼진다.

다음 예제는 위에 설명한 것들을 나타낸 것이다.


Listing 5. 외래 키 제약조건에서의 업데이트 규칙과 삭제 규칙
db2> update employee set empno = '350' where empno = '000190'
DB20000I The SQL command completed successfully.
db2> update employee set empno = '360' where empno = '000150'
SQL0531N The parent key in a parent row of relationship "MELNYK.PROJECT.SQL040103212526610" cannot be updated. SQLSTATE=23504
db2> "select respemp from project where respemp < '000050' order by respemp"
RESPEMP
-------
000010
000010
000020
000030
000030
db2> delete from employee where empno = '000010'
DB20000I The SQL command completed successfully.
db2> "select respemp from project where respemp < '000050' order by respemp"
RESPEMP
-------
000020
000030
000030

부모 테이블(EMPLOYEE)에 있는 EMPNO 값 '000190'은 변경될 수 있다. 종속 테이블(PROJECT)에 '000190' RESPEMP 값이 없기 때문이다. 하지만 EMPNO 값 '000150'는 경우가 다르다. 이것은 PROJECT 테이블에 매칭하는 외래 키 값을 갖고 있고 따라서 업데이트 될 수 없다. CASCADE 옵션을 지정한 삭제 규칙으로 인해 기본 키 값 '000010'이 EMPLOYEE 테이블에서 삭제되면 삭제 연결된(delete-connected) PROJECT 테이블은 매칭하는 외래 키 값을 포함하고 있는 모든 열을 잃게 된다.





테이블 체크 제약조건

테이블 체크 제약조건(table check constraint)은 데이터에 정의된 제한들이 테이블에 추가될 수 있도록 한다. 예를 들어, 테이블 체크 제약조건은 EMPLOYEE 테이블에 내선 번호가 추가 및 업데이트 될 때 정확히 4자리 수가 되도록 한다. 테이블 체크 제약조건은 CHECK 구문을 사용하여 CREATE TABLE 문으로 정의되거나(그림 12), ALTER TABLE 문으로 정의된다.


Listing 6. 테이블 체크 제약조건 만들기. PHONENO_LENGTH 제약조건은 EMPLOYEE 테이블에 추가되는 내선번호를 4자리 숫자로 지정한다.
db2 alter table employee add constraint phoneno_length check (length(rtrim(phoneno)) = 4)

대안으로는 DB2 Control Center를 사용하여 테이블 체크 제약조건을 정의할 수 있다. (그림 6)


그림 6. Alter Table 윈도우에서 테이블 체크 제약조건을 편리하게 정의할 수 있다.

Add 버튼을 클릭하여 새로운 제약조건(Add Check Constraint 옵션)을 정의하거나, Change 버튼을 눌러 기존 제약조건을 변경한다.(그림 7)


그림 7. Change Check Constraint 창에서 기본 체크 조건을 변경할 수 있다.

이 테이블의 기존 열의 값이 새로운 제약조건을 위반한다면 테이블 체크 제약조건을 만들 수 없다.(그림 8) 이렇게 비 호환되는 값이 적절히 업데이트 된 후에 제약조건을 추가하거나 수정할 수 있다.


그림 8. 새로운 테이블 체크 제약조건이 테이블의 기본 값과 호환되지 않는다면 에러가 리턴된다.

데이터 체크 연기하기

SET INTEGRITY 문은 테이블을 체크 보류 상태로 만드는데 사용된다. 새로운 체크 제약조건을 정의한 ALTER TABLE 문은 이 테이블의 기존 값을 체크하지 않고 처리된다.

테이블 체크 제약조건은 SET INTEGRITY 문을 사용하여 실행되거나 실행되지 않는다. 테이블에 대해 대규모의 데이터 부하가 걸려있는 동안 퍼포먼스를 최적화 할 때 매우 유용하다. Listing 7은 SET INTEGRITY 문을 사용하는 시나리오이다. 이 예제에서 EMPLOYEE 테이블의 무결성 체크가 비활성 된 후에, 사원 '000100 '의 내선 번호는 123 값으로 업데이트 된다. 4자리 숫자의 내선 번호 값이 필요한 체크 제약조건은 EMPLOYEE 테이블에서 정의된다. EMPL_EXCEPT 라고 하는 예외 테이블이 만들어 진다. 이 새로운 테이블의 정의는 EMPLOYEE 테이블의 정의를 모방한 것이다. 무결성 체크가 활성화 되면, 이러한 테이블에 대한 쿼리는 해당 열이 예외 테이블에만 존재하는지를 확인한다.


Listing 7. SET INTEGRITY 문을 사용하여 제약조건 체크 연기하기
db2 update employee set phoneno = '123' where empno = '000100' db2 set integrity for employee off db2 alter table employee add constraint phoneno_length check (length(rtrim(phoneno)) = 4) db2 create table empl_except like employee db2 set integrity for employee immediate checked for exception in employee use empl_except SQL3602W Check data processing found constraint violations and moved them to exception tables. SQLSTATE=01603 db2 select empno, lastname, workdept, phoneno from empl_except EMPNO LASTNAME WORKDEPT PHONENO ------ --------------- -------- ------- 000100 SPENSER E21 123 1 record(s) selected.




위로


요약

지금까지 DB2 Universal Database에서 지원하는 여러 가지 제약조건 유형들을 살펴보았다. 이러한 제약조건들이 DB2 UDB에 사용되어 데이터에 대해 비즈니스 규칙을 실행하고 데이터 무결성을 유지하는 방법도 알았다. 또한, 제약조건을 효과적으로 관리하는 방법으로 명령행과 DB2 Control Center의 사용법에 대해서도 배웠다.

 






참고자료





필자소개

Roman Melnyk, DB2 Information Development, IBM




출처 :http://www-128.ibm.com/developerworks/kr/library/dm-0401melnyk/

 

지원되는 함수 및 SQL 관리 루틴

표 130은 지원되는 함수 및 SQL 관리 루틴에 대한 정보를 포함합니다. 스키마와 결합된 함수 이름은 함수의 전체 이름을 제공합니다. 『입력 매개변수』 컬럼은 함수 호출 시 각 인수에 대해 예상되는 데이터 유형을 표시합니다. 여러 함수에는 다양한 입력 매개변수가 포함되어 있어 다른 데이터 유형 또는 다른 수의 인수를 사용할 수 있습니다. 스키마, 함수 이름 및 입력 매개변수의 조합 함수 시그니처를 구성합니다. 『리턴』 컬럼은 함수가 리턴하는 가능한 값의 데이터 유형을 표시합니다.

유형별로 분류된 지원되는 내장 함수의 목록은 다음 테이블을 참조하십시오.

  • 집계 함수(표 131)
  • 캐스트 스칼라 함수(표 132)
  • 데이터 링크 스칼라 함수(표 133)
  • 날짜/시간 스칼라 함수(표 134)
  • 파티션 스칼라 함수(표 135)
  • 숫자 스칼라 함수(표 136)
  • 문자열 스칼라 함수(표 137)
  • 기타 스칼라 함수(표 138)
표 130. 지원되는 함수
함수 이름 스키마 설명
입력 매개변수 리턴
ABS 또는 ABSVAL 스칼라 함수 SYSIBM 스칼라 함수는 인수의 절대값을 리턴합니다.
내장 숫자 데이터 유형을 리턴하는 임의의 표현식 인수와 동일한 데이터 유형 및 길이
ABS 또는 ABSVAL 스칼라 함수 SYSFUN 스칼라 함수는 인수의 절대값을 리턴합니다.
SMALLINT SMALLINT
INTEGER INTEGER
BIGINT BIGINT
DOUBLE DOUBLE
ACOS 스칼라 함수 SYSIBM 스칼라 함수는 인수의 arccosine을 라디안으로 표시되는 각도로 리턴합니다.
DOUBLE DOUBLE
7 ALTOBJ 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 변경할 기존 테이블에 대한 7 대상 DDL 역할을 수행하는 입력 CREATE TABLE문을 구문 분석합니다.
ALTOBJ 프로시저의 내용을 참조하십시오.
7 AM_BASE_RPT_RECOMS 테이블 함수 7 SYSPROC 7 테이블 함수(SQL 관리 루틴)는 활동 모니터가 사용하는 활동 보고서에 대한 7 권장사항을 리턴합니다.
AM_BASE_RPT_RECOMS 테이블 함수을 참조하십시오.
7 AM_BASE_RPTS 테이블 함수 7 SYSPROC 7 이 테이블 함수(SQL 관리 루틴)는 활동 모니터가 사용하는 활동 보고서를 리턴합니다.
AM_BASE_RPTS 테이블 함수을 참조하십시오.
7 AM_DROP_TASK 프로시저 7 SYSPROC 7 프로시저(SQL 관리 루틴)는 모니터링 작업을 삭제합니다.
AM_DROP_TASK 프로시저을 참조하십시오.
7 AM_GET_LOCK_CHN_TB 프로시저 7 SYSPROC 7 프로시저(SQL 관리 루틴)는 응용프로그램 잠금 체인 데이터를 표 형식으로 리턴합니다.
AM_GET_LOCK_CHN_TB 프로시저을 참조하십시오.
7 AM_GET_LOCK_CHNS 프로시저 7 SYSPROC 7 프로시저(SQL 관리 루틴)는 출력 문자열을 사용하여 지정된 응용프로그램에 7 대한 잠금 체인을 표시합니다.
AM_GET_LOCK_CHNS 프로시저을 참조하십시오.
7 AM_GET_LOCK_RPT 프로시저 7 SYSPROC 7 프로시저(SQL 관리 루틴)는 응용프로그램에 대한 잠금 세부사항을 표시합니다.
AM_GET_LOCK_RPT 프로시저을 참조하십시오.
7 AM_GET_RPT 프로시저 7 SYSPROC 7 프로시저(SQL 관리 루틴)는 보고서에 대한 활동 모니터 데이터를 표시합니다.
AM_GET_RPT 프로시저을 참조하십시오.
7 AM_SAVE_TASK 프로시저 7 SYSPROC 7 프로시저(SQL 관리 루틴)는 모니터링 작업을 작성 또는 수정합니다.
AM_SAVE_TASK 프로시저을 참조하십시오.
7 APP 프로시저 7 DB2EAS 7 프로시저(SQL 관리 루틴)는 DB2용 응용프로그램 서버(AS)에 대해 지정된 응용프로그램을 7 시작 또는 중지합니다.
APP 프로시저을 참조하십시오.
7 APPLICATION_ID 스칼라 함수 7 SYSFUN 7 스칼라 함수(SQL 관리 루틴)는 현재 연결의 응용프로그램 ID를 리턴합니다.
APPLICATION_ID 스칼라 함수을 참조하십시오.
ASCII 스칼라 함수 SYSFUN 스칼라 함수는 인수의 가장 왼쪽 문자의 ASCII 코드 값을 정수로 리턴합니다.
CHAR INTEGER
VARCHAR(4000) INTEGER
CLOB(1M) INTEGER
ASIN 스칼라 함수 SYSIBM 스칼라 함수는 인수의 arcsine을 라디안으로 표시되는 각도로 리턴합니다.
DOUBLE DOUBLE
ATAN 스칼라 함수 SYSIBM 스칼라 함수는 인수의 arctangent를 라디안으로 표시되는 각도로 리턴합니다.
DOUBLE DOUBLE
ATANH 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 hyperbolic arctangent를 리턴합니다.
DOUBLE DOUBLE
ATAN2 스칼라 함수 SYSIBM 스칼라 함수는 첫 번째와 두 번째 인수로 각각 지정되는 xy 좌표의 arctangent를 라디안으로 표시되는 각도록 리턴합니다.
DOUBLE, DOUBLE DOUBLE
AVG 집계 함수 SYSIBM 이 집계 함수는 숫자 세트의 평균을 리턴합니다.
numeric-type 4 numeric-type 1
BIGINT 스칼라 함수 SYSIBM 스칼라 함수는 정수 상수의 양식으로 숫자의 64 비트 정수 표현 또는 문자열을 리턴합니다.
numeric-type BIGINT
VARCHAR BIGINT
BLOB 스칼라 함수 SYSIBM 스칼라 함수는 선택적 길이로 소스 유형에서 BLOB로 캐스트합니다.
문자열 유형 BLOB
string-type, INTEGER BLOB
CEILING 또는 CEIL 스칼라 함수 SYSIBM 스칼라 함수는 인수보다 크거나 같은 최소의 정수를 리턴합니다.
SMALLINT SMALLINT
INTEGER INTEGER
BIGINT BIGINT
DOUBLE DOUBLE
CHAR 스칼라 함수 SYSIBM 스칼라 함수는 소스 유형의 문자열 표현을 리턴합니다.
character-type CHAR
character-type, INTEGER CHAR(integer)
datetime-type CHAR
datetime-type, keyword 2 CHAR
SMALLINT CHAR(6)
INTEGER CHAR(11)
BIGINT CHAR(20)
DECIMAL CHAR(2+precision)
DECIMAL, VARCHAR CHAR(2+precision)
CHAR 스칼라 함수 SYSFUN 스칼라 함수는 부동 소수점 숫자의 문자열 표현을 리턴합니다.
DOUBLE CHAR(24)
CHR 스칼라 함수 SYSFUN 스칼라 함수는 인수에 의해 지정된 ASCII 코드 값을 갖고 있는 문자를 리턴합니다. 인수 값은 0 - 255이어야 합니다. 그렇지 않으면, 리턴 값은 널(NULL)입니다.
INTEGER CHAR(1)
CLOB 스칼라 함수 SYSIBM 스칼라 함수는 선택적 길이로 소스 유형에서 CLOB로 캐스트합니다.
character-type CLOB
character-type, INTEGER CLOB
COALESCE 스칼라 함수 3 SYSIBM 스칼라 함수는 인수의 세트에서 첫 번째 널(NULL)이 아닌 인수를 리턴합니다.
any-type, any-union-compatible-type, ... any-type
CONCAT 스칼라 함수 SYSIBM 스칼라 함수는 두 문자열 인수의 병합을 리턴합니다.
string-type, compatible-string-type max-string-type
CORRELATION 집계 함수 SYSIBM 이 집계 함수는 숫자 쌍 세트의 상관 계수를 리턴합니다.
numeric-type, numeric-type DOUBLE
COS 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 cosine을 리턴합니다.
DOUBLE DOUBLE
COSH 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 hyperbolic cosine을 리턴합니다.
DOUBLE DOUBLE
COT 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 cotangent를 리턴합니다.
DOUBLE DOUBLE
COUNT SYSIBM 이 집계 함수는 행이나 값 세트에서 행 수 또는 값 수를 리턴합니다.
any-builtin-type 4 INTEGER
COUNT_BIG 집계 함수 SYSIBM 이 집계 함수는 행이나 값 세트에서 행 수 또는 값 수를 리턴합니다. 결과는 INTEGER의 최대값보다 클 수 있습니다.
any-builtin-type 4 DECIMAL(31,0)
COVARIANCE 집계 함수 SYSIBM 이 집계 함수는 숫자 쌍 세트의 공분산을 리턴합니다.
numeric-type, numeric-type DOUBLE
DATE 스칼라 함수 SYSIBM 스칼라 함수는 단일 입력 값으로부터 날짜를 리턴합니다.
DATE DATE
TIMESTAMP DATE
DOUBLE DATE
VARCHAR DATE
DAY 스칼라 함수 SYSIBM 스칼라 함수는 값의 요일 부분을 리턴합니다.
VARCHAR INTEGER
DATE INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
DAYNAME 스칼라 함수 SYSFUN 스칼라 함수는 db2start가 발행된 때의 로케일에 따라, 인수의 요일 부분에 대한 요일 이름(예: Friday)이 포함된 대소문자 혼용 문자열을 리턴합니다.
VARCHAR(26) VARCHAR(100)
DATE VARCHAR(100)
TIMESTAMP VARCHAR(100)
DAYOFWEEK 스칼라 함수 SYSFUN 스칼라 함수는 인수에 있는 요일을 1 - 7 범위 내의 정수 값으로 리턴하며, 여기서 1은 일요일을 나타냅니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
DAYOFWEEK_ISO 스칼라 함수 SYSFUN 스칼라 함수는 인수에 있는 요일을 1 - 7 범위 내의 정수 값으로 리턴하며, 여기서 1은 월요일을 나타냅니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
DAYOFYEAR 스칼라 함수 SYSFUN 스칼라 함수는 인수에 있는 연도의 날짜를 1 - 366 범위 내의 정수 값으로 리턴합니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
DAYS 스칼라 함수 SYSIBM 스칼라 함수는 날짜의 정수 표현을 리턴합니다.
VARCHAR INTEGER
TIMESTAMP INTEGER
DATE INTEGER
2 DB_PARTITIONS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 양식으로 db2nodes.cfg 파일의 내용을 리턴합니다.
DB_PARTITIONS 테이블 함수을 참조하십시오.
DBCLOB 스칼라 함수 SYSIBM 스칼라 함수는 선택적 길이로 소스 유형에서 DBCLOB로 캐스트합니다.
graphic-type DBCLOB
graphic-type, INTEGER DBCLOB
DBPARTITIONNUM 스칼라 함수 3 SYSIBM 스칼라 함수는 행의 데이터베이스 파티션 번호를 리턴합니다. 인수는 테이블 내의 컬럼 이름입니다.
any-type INTEGER
DECIMAL 스칼라 함수 SYSIBM 스칼라 함수는 선택적 정밀도와 스케일로 숫자의 10진수 표현을 리턴합니다.
numeric-type DECIMAL
numeric-type, INTEGER DECIMAL
numeric-type INTEGER, INTEGER DECIMAL
DECIMAL 스칼라 함수 SYSIBM 스칼라 함수는 선택적 정밀도, 스케일 및 문자로 문자열의 10진수 표현을 리턴합니다.
VARCHAR DECIMAL
VARCHAR, INTEGER DECIMAL
VARCHAR, INTEGER, INTEGER DECIMAL
VARCHAR, INTEGER, INTEGER, VARCHAR DECIMAL
DECRYPT_BIN and DECRYPT_CHAR 스칼라 함수 SYSIBM 스칼라 함수는 암호 문자열을 사용하여 암호화된 데이터의 해독 결과 값을 리턴합니다.
VARCHAR FOR BIT DATA VARCHAR FOR BIT DATA
VARCHAR FOR BIT DATA, VARCHAR VARCHAR FOR BIT DATA
DECRYPT_BIN and DECRYPT_CHAR 스칼라 함수 SYSIBM 스칼라 함수는 암호 문자열을 사용하여 암호화된 데이터의 해독 결과 값을 리턴합니다.
VARCHAR FOR BIT DATA VARCHAR
VARCHAR FOR BIT DATA, VARCHAR VARCHAR
DEGREES 스칼라 함수 SYSFUN 스칼라 함수는 라디안으로 표시된 인수에서 변환된 각도의 수를 리턴합니다.
DOUBLE DOUBLE
DEREF 스칼라 함수 SYSIBM 스칼라 함수는 참조 유형 인수의 목표 유형 인스턴스를 리턴합니다.
REF(any-structured-type) with defined scope any-structured-type(입력 목표 유형과 동일)
DIFFERENCE 스칼라 함수 SYSFUN 스칼라 함수는 SOUNDEX 함수로 판별한대로, 두 개의 인수 문자열에 있는 단어들의 음조 차이를 리턴합니다. 4의 값은 문자열 음조가 같음을 의미합니다.
VARCHAR(4000), VARCHAR(4000) INTEGER
DIGITS 스칼라 함수 SYSIBM 스칼라 함수는 숫자의 문자열 표현을 리턴합니다.
DECIMAL CHAR
DLCOMMENT 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값의 주석 속성을 리턴합니다.
DATALINK VARCHAR(254)
DLLINKTYPE 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값의 링크 유형 속성을 리턴합니다.
DATALINK VARCHAR(4)
DLNEWCOPY 스칼라 함수 SYSIBM 스칼라 함수는 참조된 파일이 변경되었음을 표시하는 속성이 있는 DATALINK 값을 리턴합니다.
4 VARCHAR(254) 4 DATALINK
DLPREVIOUSCOPY 스칼라 함수 SYSIBM 스칼라 함수는 파일의 이전 버전이 리스토어되어야 함을 표시하는 속성이 있는 DATALINK 값을 리턴합니다.
4 VARCHAR(254) 4 DATALINK
DLREPLACECONTENT 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값을 리턴합니다. 함수가 UPDATE문의 SET절 오른쪽에 있거나 INSERT문의 VALUES절에 있는 경우, 리턴된 값을 지정하면 다른 파일로 파일 내용을 대체한 후 이에 대한 링크를 작성하게 됩니다.
4 VARCHAR(200) 4 DATALINK
4 VARCHAR(200), VARCHAR(200) 4 DATALINK
DLURLCOMPLETE 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값에서 전체 URL(액세스 토큰 포함)을 리턴합니다.
DATALINK VARCHAR
DLURLCOMPLETEONLY 스칼라 함수 SYSIBM 4 스칼라 함수는 링크 유형이 URL인 DATALINK 값에서 전체 URL(액세스 토큰 불포함)을 4 리턴합니다.
DATALINK VARCHAR(254)
DLURLCOMPLETEWRITE 스칼라 함수 SYSIBM 4 스칼라 함수는 링크 유형이 URL인 DATALINK 값에서 지정된 파일을 수정하는 데 4 필요한 전체 URL 값을 리턴합니다.
DATALINK VARCHAR(254)
DLURLPATH 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값의 경로 및 파일 이름(액세스 토큰 포함)을 리턴합니다.
DATALINK VARCHAR
DLURLPATHONLY 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값의 경로 및 파일 이름(액세스 토큰 불포함)을 리턴합니다.
DATALINK VARCHAR
DLURLPATHWRITE 스칼라 함수 SYSIBM 4 스칼라 함수는 링크 유형이 URL인 DATALINK 값에서 제공된 서버 내의 파일을 수정하는 데 4 필요한 경로 및 파일 이름을 리턴합니다.
DATALINK VARCHAR(254)
DLURLSCHEME 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값의 URL 속성에서 스킴을 리턴합니다.
DATALINK VARCHAR
DLURLSERVER 스칼라 함수 SYSIBM 스칼라 함수는 DATALINK 값의 URL 속성에서 서버를 리턴합니다.
DATALINK VARCHAR
DLVALUE 스칼라 함수 SYSIBM 스칼라 함수는 data-location 인수, 링크 유형 인수 및 선택적 comment-string 인수로부터 DATALINK 값을 빌드합니다.
VARCHAR DATALINK
VARCHAR, VARCHAR DATALINK
VARCHAR, VARCHAR, VARCHAR DATALINK
DOUBLE 스칼라 함수 SYSIBM 스칼라 함수는 숫자의 부동 소수점 표현을 리턴합니다.
numeric-type DOUBLE
DOUBLE 스칼라 함수 SYSFUN 스칼라 함수는 숫자의 문자열 표현에 해당하는 부동 소수점 숫자를 리턴합니다. 인수의 앞 및 뒤 공백은 무시됩니다.
VARCHAR DOUBLE
ENCRYPT 스칼라 함수 SYSIBM 스칼라 함수는 데이터 문자열 표현식을 암호화한 결과 값을 리턴합니다.
VARCHAR VARCHAR FOR BIT DATA
VARCHAR, VARCHAR VARCHAR FOR BIT DATA
VARCHAR, VARCHAR, VARCHAR VARCHAR FOR BIT DATA
EVENT_MON_STATE 스칼라 함수 SYSIBM 스칼라 함수는 특정 이벤트 모니터의 작동 상태를 리턴합니다.
VARCHAR INTEGER
7 EXEC_DB2_SCRIPT 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 DB2 인스턴스에서 DB2 명령을 실행합니다.
EXEC_DB2_SCRIPT 프로시저을 참조하십시오.
EXP 스칼라 함수 SYSFUN 스칼라 함수는 인수의 지수 함수를 리턴합니다.
DOUBLE DOUBLE
FLOAT 스칼라 함수 SYSIBM 스칼라 함수는 DOUBLE과 동일합니다.
FLOOR 스칼라 함수 SYSIBM 스칼라 함수는 인수보다 작거나 같은 최대의 정수를 리턴합니다.
SMALLINT SMALLINT
INTEGER INTEGER
BIGINT BIGINT
DOUBLE DOUBLE
GENERATE_UNIQUE 스칼라 함수 SYSIBM 스칼라 함수는 동일한 함수의 다른 모든 실행과 비교하여 고유한 비트 데이터 문자열을 리턴합니다.
no argument CHAR(13) FOR BIT DATA
7 GET_DB_CONFIG 테이블 함수 7 SYSFUN 7 이 테이블 함수(SQL 관리 루틴)는 데이터베이스 구성 정보를 리턴합니다.
GET_DB_CONFIG 테이블 함수을 참조하십시오.
7 GET_DBM_CONFIG 테이블 함수 7 SYSFUN 7 이 테이블 함수(SQL 관리 루틴)는 데이터베이스 관리 프로그램 구성 정보를 리턴합니다.
GET_DBM_CONFIG 테이블 함수을 참조하십시오.
7 GET_DBSIZE_INFO 프로시저 7 SYSTOOLS 7 이 프로시저(SQL 관리 루틴)는 데이터베이스 크기 및 최대 용량을 계산합니다.
GET_DBSIZE_INFO 프로시저을 참조하십시오.
7 GET_ROUTINE_OPTS 스칼라 함수 7 SYSPROC 7 스칼라 함수(SQL 관리 루틴)는 현재 세션에서 SQL 프로시저의 작성에 사용할 옵션의 7 문자열 값을 리턴합니다.
GET_ROUTINE_OPTS 스칼라 함수을 참조하십시오.
GET_ROUTINE_SAR 프로시저 SYSFUN 이 프로시저(SQL 관리 루틴)는 최소한 동일한 레벨 및 운영 체제에서 실행하는 다른 데이터베이스 서버에 동일한 루틴을 설치하기 위해 필요한 정보를 리턴합니다.
GET_ROUTINE_SAR 프로시저을 참조하십시오.
GETHINT 스칼라 함수 SYSIBM 스칼라 함수는 암호 힌트가 있는 경우 이를 리턴합니다.
VARCHAR 또는 CLOB VARCHAR
GRAPHIC 스칼라 함수 SYSIBM 스칼라 함수는 선택적 길이로 소스 유형에서 GRAPHIC으로 캐스트합니다.
graphic-type GRAPHIC
graphic-type, INTEGER GRAPHIC
GROUPING 집계 함수 SYSIBM 이 집계 함수는 그룹화 세트가 생성한 소계 행을 가리키기 위해 그룹화 세트 및 슈퍼 그룹과 함께 사용됩니다. 리턴된 값은 0 또는 1입니다. 1 값은 리턴된 행에서 인수의 값이 널(NULL) 값이고 행이 그룹화 세트에 대해 생성되었음을 의미합니다. 이 생성된 행은 그룹화 세트에 대해 소계를 제공합니다.
any-type SMALLINT
HASHEDVALUE 스칼라 함수 3 SYSIBM 스칼라 함수는 행의 파티션 맵 인덱스(0 - 4095)를 리턴합니다. 인수는 테이블 내의 컬럼 이름입니다.
any-type INTEGER
7 HEALTH_DB_HIC 테이블 함수 7 SYSPROC 7 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 콜렉션 health 7 표시기 정보를 리턴합니다.
HEALTH_DB_HIC 테이블 함수을 참조하십시오.
7 HEALTH_DB_HIC_HIS 테이블 함수 7 SYSPROC 7 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 콜렉션 health 7 표시기 실행기록 정보를 리턴합니다.
HEALTH_DB_HIC_HIS 테이블 함수을 참조하십시오.
2 HEALTH_CONT_HI 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 컨테이너에 2 대한 health 표시기 정보가 있는 테이블을 리턴합니다.
HEALTH_CONT_HI 테이블 함수을 참조하십시오.
2 HEALTH_CONT_HI_HIS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 컨테이너에 대한 2 health 표시기 실행기록 정보가 있는 테이블을 리턴합니다.
HEALTH_CONT_HI_HIS 테이블 함수을 참조하십시오.
2 HEALTH_CONT_INFO 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 컨테이너 정보가 2 있는 테이블을 리턴합니다.
HEALTH_CONT_INFO 테이블 함수을 참조하십시오.
2 HEALTH_DB_HI 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 health 표시기 정보가 있는 테이블을 리턴합니다.
HEALTH_DB_HI 테이블 함수을 참조하십시오.
2 HEALTH_DB_HI_HIS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 health 표시기 실행기록 2 정보가 있는 테이블을 리턴합니다.
HEALTH_DB_HI_HIS 테이블 함수을 참조하십시오.
2 HEALTH_DB_INFO 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 정보가 2 있는 테이블을 리턴합니다.
HEALTH_DB_INFO 테이블 함수을 참조하십시오.
2 HEALTH_DBM_HI 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 DB2 데이터베이스 관리 프로그램의 health 스냅샷에서 2 health 표시기 정보가 있는 테이블을 리턴합니다.
HEALTH_DBM_HI 테이블 함수을 참조하십시오.
2 HEALTH_DBM_HI_HIS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 DB2 데이터베이스 관리 프로그램의 health 스냅샷에서 2 health 표시기 실행기록 정보가 있는 테이블을 리턴합니다.
HEALTH_DBM_HI_HIS 테이블 함수을 참조하십시오.
2 HEALTH_DBM_INFO 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 DB2 데이터베이스 관리 프로그램의 health 스냅샷에서 2 정보가 있는 테이블을 리턴합니다.
HEALTH_DBM_INFO 테이블 함수을 참조하십시오.
7 HEALTH_HI_REC 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 특정 DB2 오브젝트에서 경고 상태의 7 health 표시기를 처리하는 권장사항 세트를 검색합니다.
HEALTH_HI_REC 프로시저을 참조하십시오.
2 HEALTH_TBS_HI 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 테이블 스페이스에 2 대한 health 표시기 정보가 있는 테이블을 리턴합니다.
HEALTH_TBS_HI 테이블 함수을 참조하십시오.
2 HEALTH_TBS_HI_HIS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 테이블 스페이스에 2 대한 health 표시기 실행 기록 정보가 있는 테이블을 리턴합니다.
HEALTH_TBS_HI_HIS 테이블 함수을 참조하십시오.
2 HEALTH_TBS_INFO 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스의 health 스냅샷에서 테이블 스페이스 정보가 2 있는 테이블을 리턴합니다.
HEALTH_TBS_INFO 테이블 함수을 참조하십시오.
HEX 스칼라 함수 SYSIBM 스칼라 함수는 값의 16진수 표현을 리턴합니다.
any-builtin-type VARCHAR
HOUR 스칼라 함수 SYSIBM 스칼라 함수는 값의 시 부분을 리턴합니다.
VARCHAR INTEGER
TIME INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
IDENTITY_VAL_LOCAL 스칼라 함수 SYSIBM 스칼라 함수는 식별 컬럼에 대해 가장 최근에 지정된 값을 리턴합니다.
DECIMAL
INSERT 스칼라 함수 SYSFUN 스칼라 함수는 문자열을 리턴하는데, 여기서 argument3 바이트는 argument1(argument2에서 시작)에서 삭제되었으며 argument4argument1(argument2에서 시작)으로 삽입되었습니다.
VARCHAR(4000), INTEGER, INTEGER, VARCHAR(4000) VARCHAR(4000)
CLOB(1M), INTEGER, INTEGER, CLOB(1M) CLOB(1M)
BLOB(1M), INTEGER, INTEGER, BLOB(1M) BLOB(1M)
7 INSTALLAPP 프로시저 7 DB2EAS 7 프로시저(SQL 관리 루틴)는 DB2용 응용프로그램 서버(AS)에 대해 지정된 응용프로그램을 7 설치합니다.
INSTALLAPP 프로시저을 참조하십시오.
INTEGER 스칼라 함수 SYSIBM 스칼라 함수는 숫자의 정수 표현을 리턴합니다.
numeric-type INTEGER
VARCHAR INTEGER
JULIAN_DAY 스칼라 함수 SYSFUN 스칼라 함수는 B.C 4712년 1월 1일(율리우스력의 시작)에서 argument에 지정된 날짜 값까지의 일 수를 나타내는 정수 값을 리턴합니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
LCASE(SYSFUN 스키마) 스칼라 함수 SYSFUN 스칼라 함수는 모든 문자가 소문자로 변환된 문자열을 리턴합니다. LCASE는 불변 세트에 있는 문자만 처리합니다. 따라서, LCASE(UCASE(문자열))에서는 LCASE(문자열)와 동일한 결과를 리턴할 필요가 없습니다.
VARCHAR(4000) VARCHAR(4000)
CLOB(1M) CLOB(1M)
LCASE 또는 LOWER 스칼라 함수 SYSIBM 스칼라 함수는 모든 문자가 소문자로 변환된 문자열을 리턴합니다.
CHAR CHAR
VARCHAR VARCHAR
LEFT 스칼라 함수 SYSFUN 스칼라 함수는 argument1의 가장 왼쪽에 있는 argument2 바이트로 구성된 문자열을 리턴합니다.
VARCHAR(4000), INTEGER VARCHAR(4000)
CLOB(1M), INTEGER CLOB(1M)
BLOB(1M), INTEGER BLOB(1M)
LENGTH 스칼라 함수 SYSIBM 스칼라 함수는 바이트 내의 피연산자 길이를 바이트(길이를 문자로 리턴하는 2 바이트 문자열 유형 제외) 단위로 리턴합니다.
any-builtin-type INTEGER
LN 스칼라 함수 SYSFUN 스칼라 함수는 인수의 자연 대수를 리턴합니다(LOG와 동일).
DOUBLE DOUBLE
LOCATE 스칼라 함수 SYSFUN 스칼라 함수는 argument2 내에서 첫 번째 argument1 어커런스의 시작 위치를 리턴합니다. 선택적인 세 번째 인수가 지정되면, argument2에서 검색이 시작되는 문자 위치를 나타냅니다 argument2 내에서 argument1이 발견되지 않으면, 값 0이 리턴됩니다.
VARCHAR(4000), VARCHAR(4000) INTEGER
VARCHAR(4000), VARCHAR(4000), INTEGER INTEGER
CLOB(1M), CLOB(1M) INTEGER
CLOB(1M), CLOB(1M), INTEGER INTEGER
BLOB(1M), BLOB(1M) INTEGER
BLOB(1M), BLOB(1M), INTEGER INTEGER
LOG 스칼라 함수 SYSFUN 스칼라 함수는 인수의 자연 대수를 리턴합니다(LN과 동일).
DOUBLE DOUBLE
LOG10 스칼라 함수 SYSFUN 스칼라 함수는 인수의 기본 10 대수를 리턴합니다.
DOUBLE DOUBLE
LONG_VARCHAR 스칼라 함수 SYSIBM 스칼라 함수는 Long 문자열을 리턴합니다.
character-type LONG VARCHAR
LONG_VARGRAPHIC 스칼라 함수 SYSIBM 스칼라 함수는 소스 유형에서 LONG VARGRAPHIC으로 캐스트합니다.
graphic-type LONG VARGRAPHIC
LTRIM(SYSFUN 스키마) 스칼라 함수 SYSFUN 스칼라 함수는 앞 공백이 제거된 인수의 문자를 리턴합니다.
VARCHAR(4000) VARCHAR(4000)
CLOB(1M) CLOB(1M)
LTRIM 스칼라 함수 SYSIBM 스칼라 함수는 앞 공백이 제거된 인수의 문자를 리턴합니다.
CHAR VARCHAR
VARCHAR VARCHAR
GRAPHIC VARGRAPHIC
VARGRAPHIC VARGRAPHIC
MAX 집계 함수 SYSIBM 이 집계 함수는 값 세트에서 최대값을 리턴합니다.
any-builtin-type 5 입력 유형과 동일
MICROSECOND 스칼라 함수 SYSIBM 스칼라 함수는 값의 마이크로초(시간 단위) 부분을 리턴합니다.
VARCHAR INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
MIDNIGHT_SECONDS 스칼라 함수 SYSFUN 스칼라 함수는 argument에서 지정한 시간 값과 자정 사이의 시간(초 단위)을 표현하는 정수 값을 0에서 86 400까지의 범위로 리턴합니다.
VARCHAR(26) INTEGER
TIME INTEGER
TIMESTAMP INTEGER
MIN 집계 함수 SYSIBM 이 집계 함수는 값 세트에서 최소값을 리턴합니다.
any-builtin-type 5 입력 유형과 동일
MINUTE 스칼라 함수 SYSIBM 스칼라 함수는 값의 분 부분을 리턴합니다.
VARCHAR INTEGER
TIME INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
MOD 스칼라 함수 SYSFUN 스칼라 함수는 argument2로 나눈 argument1의 나머지(모듈)를 리턴합니다. 결과는 argument1이 음수일 경우에만 음수입니다
SMALLINT, SMALLINT SMALLINT
INTEGER, INTEGER INTEGER
BIGINT, BIGINT BIGINT
MONTH 스칼라 함수 SYSIBM 스칼라 함수는 값의 월 부분을 리턴합니다.
VARCHAR INTEGER
DATE INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
MONTHNAME 스칼라 함수 SYSFUN 스칼라 함수는 데이터베이스를 시작할 때의 로케일을 기초로 날짜 또는 시간소인이 되는 인수의 월 부분의 월 이름(예: January)을 포함하는 대소문자 혼용 문자열을 리턴합니다.
VARCHAR(26) VARCHAR(100)
DATE VARCHAR(100)
TIMESTAMP VARCHAR(100)
MQPUBLISH 스칼라 함수 2 DB2MQ, DB2MQ1C 스칼라 함수(SQL 관리 루틴)는 MQSeries 위치에 데이터를 발행합니다.
MQPUBLISH 스칼라 함수을 참조하십시오.
MQREAD 스칼라 함수 2 DB2MQ, DB2MQ1C 스칼라 함수(SQL 관리 루틴)는 MQSeries 위치에서 메시지를 리턴합니다.
MQREAD 스칼라 함수을 참조하십시오.
MQREADALL 테이블 함수 2 DB2MQ, DB2MQ1C 이 테이블 함수(SQL 관리 루틴)는 MQSeries 위치에서 메시지 및 메시지 메타데이터가 있는 테이블을 리턴합니다.
MQREADALL 테이블 함수을 참조하십시오.
2 MQREADALLCLOB 테이블 함수 2 DB2MQ 2 이 테이블 함수(SQL 관리 루틴)는 지정된 MQSeries 위치에서 메시지 및 메시지 메타데이터를 2 포함하고 있는 테이블을 리턴합니다.
MQREADALLCLOB 테이블 함수을 참조하십시오.
2 MQREADCLOB 스칼라 함수 2 DB2MQ 2 스칼라 함수(SQL 관리 루틴)는 지정된 MQSeries 위치에서 메시지를 리턴합니다.
MQREADCLOB 스칼라 함수을 참조하십시오.
MQRECEIVE 스칼라 함수 2 DB2MQ, DB2MQ1C 스칼라 함수(SQL 관리 루틴)는 MQSeries 위치에서 메시지를 리턴하고 연관된 큐에서 메시지를 제거합니다.
MQRECEIVE 스칼라 함수을 참조하십시오.
MQRECEIVEALL 테이블 함수 2 DB2MQ, DB2MQ1C 이 테이블 함수(SQL 관리 루틴)는 MQSeries 위치에서 메시지 및 메시지 메타데이터가 있는 테이블을 리턴하고 연관된 큐에서 메시지를 제거합니다.
MQRECEIVEALL 테이블 함수을 참조하십시오.
2 MQRECEIVEALLCLOB 테이블 함수 2 DB2MQ 2 이 테이블 함수(SQL 관리 루틴)는 지정된 MQSeries 위치에서 메시지 및 메시지 메타데이터를 2 포함하고 있는 테이블을 리턴합니다.
MQRECEIVEALLCLOB 테이블 함수을 참조하십시오.
2 MQRECEIVECLOB 스칼라 함수 2 DB2MQ 2 스칼라 함수(SQL 관리 루틴)는 지정된 MQSeries 위치에서 메시지를 리턴합니다.
MQRECEIVECLOB 스칼라 함수을 참조하십시오.
MQSEND 스칼라 함수 2 DB2MQ, DB2MQ1C 스칼라 함수(SQL 관리 루틴)는 MQSeries 위치에 데이터를 보냅니다.
MQSEND 스칼라 함수을 참조하십시오.
MQSUBSCRIBE 스칼라 함수 2 DB2MQ, DB2MQ1C 스칼라 함수(SQL 관리 루틴)는 특정 주제에 대해 발행된 MQSeries 메시지에 등록합니다.
MQSUBSCRIBE 스칼라 함수을 참조하십시오.
MQUNSUBSCRIBE 스칼라 함수 2 DB2MQ, DB2MQ1C 스칼라 함수(SQL 관리 루틴)는 특정 주제에 대해 발행된 MQSeries 메시지에서 등록 해제합니다.
MQUNSUBSCRIBE 스칼라 함수을 참조하십시오.
MULTIPLY_ALT 스칼라 함수 SYSIBM 스칼라 함수는 두 인수의 곱을 10진수 값으로 리턴합니다. 이 함수는 인수 정밀도의 합이 31보다 클 경우에 유용합니다.
exact-numeric-type, exact-numeric-type DECIMAL
NULLIF 스칼라 함수 3 SYSIBM 스칼라 함수는 인수가 동일하면 널(NULL)을 리턴하고, 동일하지 않으면 첫 번째 인수를 리턴합니다.
any-type 5 , any-comparable-type 5 any-type
POSSTR 스칼라 함수 SYSIBM 스칼라 함수는 한 문자열이 다른 문자열에 포함된 위치를 리턴합니다.
string-type, compatible-string-type INTEGER
POWER 스칼라 함수 SYSFUN 스칼라 함수는 argument1의 값을 argument2의 제곱수로 리턴합니다.
INTEGER, INTEGER INTEGER
BIGINT, BIGINT BIGINT
DOUBLE, INTEGER DOUBLE
DOUBLE, DOUBLE DOUBLE
PUT_ROUTINE_SAR 프로시저 SYSFUN 이 프로시저(SQL 관리 루틴)는 데이터베이스 서버에서 SQL 루틴을 작성하고 정의하기 위해 필요한 정보를 전달합니다.
PUT_ROUTINE_SAR 프로시저을 참조하십시오.
QUARTER 스칼라 함수 SYSFUN 스칼라 함수는 인수에 지정된 날짜에 대한 분기를 나타내는 1 - 4 범위의 정수 값을 리턴합니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
RADIANS 스칼라 함수 SYSFUN 스칼라 함수는 각도로 표시된 인수에서 변환된 라디안의 수를 리턴합니다.
DOUBLE DOUBLE
RAISE_ERROR 스칼라 함수 3 SYSIBM 스칼라 함수는 SQLCA에서 오류를 발생시킵니다. 리턴된 sqlstate는 argument1에 의해 표시됩니다. 두 번째 인수에 리턴되는 모든 텍스트가 포함됩니다.
VARCHAR, VARCHAR any-type 6
RAND 스칼라 함수 SYSFUN 스칼라 함수는 인수를 선택적 시드(seed) 값으로 사용하여 0과 1 사이의 임의의 부동 소수점 값을 리턴합니다.
no argument required DOUBLE
INTEGER DOUBLE
REAL 스칼라 함수 SYSIBM 스칼라 함수는 숫자의 단정밀도 부동 소수점 표현을 리턴합니다.
numeric-type REAL
2 REBIND_ROUTINE_PACKAGE 프로시저 2 SYSPROC 2 이 프로시저(SQL 관리 루틴)는 SQL 프로시저와 연관된 패키지를 리바인드합니다.
REBIND_ROUTINE_PACKAGE 프로시저을 참조하십시오.
REC2XML 스칼라 함수 SYSIBM 스칼라 함수는 컬럼 이름 및 컬럼 데이터를 포함하는, XML 태그로 형식화된 문자열을 리턴합니다.
DECIMAL, VARCHAR, VARCHAR, any-type 7 VARCHAR
REGRESSION 함수 SYSIBM REGR_AVGX 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_AVGY 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_COUNT 집계 함수는 회귀 행을 맞추는 데 사용된 널(NULL)이 아닌 숫자 쌍의 수를 리턴합니다.
numeric-type, numeric-type INTEGER
REGRESSION 함수 SYSIBM REGR_INTERCEPT 또는 REGR_ICPT 집계 함수는 회귀 행의 y 절편을 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_R2 집계 함수는 회귀에 대한 결정 계수를 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_SLOPE 집계 함수는 행의 기울기를 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_SXX 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_SXY 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
numeric-type, numeric-type DOUBLE
REGRESSION 함수 SYSIBM REGR_SYY 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
numeric-type, numeric-type DOUBLE
7 REORGCHK_IX_STATS 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 인덱스 통계를 점검하여 재구성할 필요가 7 있는지 여부를 판별합니다.
REORGCHK_IX_STATS 프로시저을 참조하십시오.
7 REORGCHK_TB_STATS 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 테이블 통계를 점검하여 재구성할 필요가 7 있는지 여부를 판별하기 판별합니다.
REORGCHK_TB_STATS 프로시저을 참조하십시오.
REPEAT 스칼라 함수 SYSFUN 스칼라 함수는 argument2의 배수만큼 반복되는 argument1로 구성된 문자열을 리턴합니다
VARCHAR(4000), INTEGER VARCHAR(4000)
CLOB(1M), INTEGER CLOB(1M)
BLOB(1M), INTEGER BLOB(1M)
REPLACE 스칼라 함수 SYSFUN 스칼라 함수는 argument1에서 argument2의 모든 어커런스를 argument3으로 바꿉니다.
VARCHAR(4000), VARCHAR(4000), VARCHAR(4000) VARCHAR(4000)
CLOB(1M), CLOB(1M), CLOB(1M) CLOB(1M)
BLOB(1M), BLOB(1M), BLOB(1M) BLOB(1M)
RIGHT 스칼라 함수 SYSFUN 스칼라 함수는 argument1의 가장 오른쪽에 있는 argument2 바이트로 구성된 문자열을 리턴합니다.
VARCHAR(4000), INTEGER VARCHAR(4000)
CLOB(1M), INTEGER CLOB(1M)
BLOB(1M), INTEGER BLOB(1M)
ROUND 스칼라 함수 SYSIBM 스칼라 함수는 소수점의 오른쪽 argument2 위치로 반올림된 첫 번째 인수를 리턴합니다. argument2가 음수인 경우, argument1은 소수점의 왼쪽에 있는 argument2 위치의 절대값으로 반올림됩니다.
INTEGER, INTEGER INTEGER
BIGINT, INTEGER BIGINT
DOUBLE, INTEGER DOUBLE
RTRIM(SYSFUN 스키마) 스칼라 함수 SYSFUN 스칼라 함수는 뒤 공백이 제거된 인수의 문자를 리턴합니다.
VARCHAR(4000) VARCHAR(4000)
CLOB(1M) CLOB(1M)
RTRIM 스칼라 함수 SYSIBM 스칼라 함수는 뒤 공백이 제거된 인수의 문자를 리턴합니다.
CHAR VARCHAR
VARCHAR VARCHAR
GRAPHIC VARGRAPHIC
VARGRAPHIC VARGRAPHIC
SECOND 스칼라 함수 SYSIBM 스칼라 함수는 값의 초(시간 단위) 부분을 리턴합니다.
VARCHAR INTEGER
TIME INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
7 SERVER 프로시저 7 DB2EAS 7 이 프로시저(SQL 관리 루틴)는 DB2용 응용프로그램 서버(AS)를 시작 또는 중지합니다.
SERVER 프로시저을 참조하십시오.
7 SET_ROUTINE_OPTS 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 현재 세션에서 SQL 프로시저의 작성에 사용할 옵션을 설정합니다.
SET_ROUTINE_OPTS 프로시저을 참조하십시오.
SIGN 스칼라 함수 SYSFUN 스칼라 함수는 인수의 부호 표시기를 리턴합니다. 인수가 0보다 작을 경우, -1이 리턴됩니다. 인수가 0과 같은 경우, 0이 리턴됩니다. 인수가 0보다 큰 경우, 1이 리턴됩니다.
SMALLINT SMALLINT
INTEGER INTEGER
BIGINT BIGINT
DOUBLE DOUBLE
SIN 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 sine을 리턴합니다.
DOUBLE DOUBLE
SINH 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 hyperbolic sine을 리턴합니다.
DOUBLE DOUBLE
SMALLINT 스칼라 함수 SYSIBM 스칼라 함수는 숫자의 작은 정수 표현을 리턴합니다.
numeric-type SMALLINT
VARCHAR SMALLINT
2 SNAPSHOT_AGENT 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 응용프로그램 스냅샷에서 에이전트에 관한 2 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_AGENT 테이블 함수을 참조하십시오.
2 SNAPSHOT_APPL 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 응용프로그램 스냅샷에서 일반 정보 테이블을 리턴합니다.
SNAPSHOT_APPL 테이블 함수을 참조하십시오.
2 SNAPSHOT_APPL_INFO 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 응용프로그램 스냅샷에서 일반 정보 테이블을 리턴합니다.
SNAPSHOT_APPL_INFO 테이블 함수을 참조하십시오.
2 SNAPSHOT_BP 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 버퍼 풀 스냅샷에서 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_BP 테이블 함수을 참조하십시오.
2 SNAPSHOT_CONTAINER 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 스페이스 스냅샷에서 컨테이너 구성 정보가 2 있는 테이블을 리턴합니다.
SNAPSHOT_CONTAINER 테이블 함수을 참조하십시오.
2 SNAPSHOT_DATABASE 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스 스냅샷에서 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_DATABASE 테이블 함수을 참조하십시오.
2 SNAPSHOT_DBM 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 DB2 데이터베이스 관리 프로그램의 스냅샷에서 2 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_DBM 테이블 함수을 참조하십시오.
2 SNAPSHOT_DYN_SQL 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 동적 SQL 스냅샷에서 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_DYN_SQL 테이블 함수을 참조하십시오.
2 SNAPSHOT_FCM 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 FCM(Fast Communication Manager)에 관한 데이터베이스 2 관리 프로그램 레벨 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_FCM 테이블 함수을 참조하십시오.
2 SNAPSHOT_FCMNODE 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 FCM(Fast Communication Manager) 데이터베이스 2 관리 프로그램의 스냅샷에서 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_FCMNODE 테이블 함수을 참조하십시오.
2 SNAPSHOT_FILEW 프로시저 2 SYSPROC 2 이 프로시저(SQL 관리 루틴)는 인스턴스 디렉토리의 tmp 서브디렉토리에 2 있는 파일에 시스템 스냅샷 데이터를 작성합니다.
SNAPSHOT_FILEW 프로시저을 참조하십시오.
2 SNAPSHOT_LOCK 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 잠금 스냅샷에서 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_LOCK 테이블 함수을 참조하십시오.
2 SNAPSHOT_LOCKWAIT 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 응용프로그램 스냅샷에서 잠금 대기 정보가 2 있는 테이블을 리턴합니다.
SNAPSHOT_LOCKWAIT 테이블 함수을 참조하십시오.
2 SNAPSHOT_QUIESCERS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 스페이스 스냅샷에서 quiescers에 관한 정보가 2 있는 테이블을 리턴합니다.
SNAPSHOT_QUIESCERS 테이블 함수을 참조하십시오.
2 SNAPSHOT_RANGES 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 범위 스냅샷에서 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_RANGES 테이블 함수을 참조하십시오.
2 SNAPSHOT_STATEMENT 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 응용프로그램 스냅샷에서 명령문에 관한 2 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_STATEMENT 테이블 함수을 참조하십시오.
2 SNAPSHOT_SUBSECT 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 응용프로그램 스냅샷에서 액세스 플랜의 서브섹션에 관한 2 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_SUBSECT 테이블 함수을 참조하십시오.
2 SNAPSHOT_SWITCHES 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 데이터베이스 스냅샷 전환 상태에 관한 2 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_SWITCHES 테이블 함수을 참조하십시오.
2 SNAPSHOT_TABLE 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 스냅샷에서 활동 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_TABLE 테이블 함수을 참조하십시오.
2 SNAPSHOT_TBREORG 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 재구성 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_TBREORG 테이블 함수을 참조하십시오.
2 SNAPSHOT_TBS 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 스페이스 스냅샷에서 활동 정보가 있는 테이블을 리턴합니다.
SNAPSHOT_TBS 테이블 함수을 참조하십시오.
2 SNAPSHOT_TBS_CFG 테이블 함수 2 SYSPROC 2 이 테이블 함수(SQL 관리 루틴)는 테이블 스페이스 스냅샷에서 구성 정보가 2 있는 테이블을 리턴합니다.
SNAPSHOT_TBS_CFG 테이블 함수을 참조하십시오.
SOUNDEX 스칼라 함수 SYSFUN 스칼라 함수는 인수에서 단어들의 음조를 나타내는 4 문자 코드를 리턴합니다. 이 결과는 다른 문자열의 음조와 비교될 수 있습니다.
VARCHAR(4000) CHAR(4)
SPACE 스칼라 함수 SYSFUN 스칼라 함수는 argument1 공백으로 구성된 문자열을 리턴합니다.
INTEGER VARCHAR(4000)
SQLCACHE_SNAPSHOT 테이블 함수 SYSFUN 이 테이블 함수(SQL 관리 루틴)는 DB2 동적 SQL 명령문 캐시의 스냅샷이 있는 테이블을 리턴합니다.
SQLCACHE_SNAPSHOT 테이블 함수을 참조하십시오.
SQRT 스칼라 함수 SYSFUN 스칼라 함수는 인수의 제곱근을 리턴합니다.
DOUBLE DOUBLE
STDDEV 집계 함수 SYSIBM 이 집계 함수는 숫자 세트의 표준 편차를 리턴합니다.
DOUBLE DOUBLE
SUBSTR 스칼라 함수 SYSIBM 스칼라 함수는 argument2에서 시작하는 argument1 문자열의 하위 문자열을 리턴합니다. 하위 문자열은 argument3 문자 길이입니다. argument3을 지정하지 않은 경우, 문자열의 나머지가 가정됩니다
string-type, INTEGER 문자열 유형
string-type, INTEGER, INTEGER 문자열 유형
SUM 집계 함수 SYSIBM 이 집계 함수는 숫자 세트의 합을 리턴합니다.
numeric-type 4 max-numeric-type 1
7 SYSINSTALLOBJECTS 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 특정 도구에 필요한 데이터베이스 오브젝트를 작성 또는 삭제합니다.
SYSINSTALLOBJECTS 프로시저을 참조하십시오.
7 SYSINSTALLROUTINES 프로시저 7 SYSPROC 7 이 프로시저(SQL 관리 루틴)는 데이터베이스 이주 이후 db2updv8 7 유틸리티가 실행되지 않은 경우, SYSPROC 스키마에 프로시저 및 함수를 새로 만듭니다.
SYSINSTALLROUTINES 프로시저을 참조하십시오.
TABLE_NAME 스칼라 함수 SYSIBM 스칼라 함수는 argument1에서 지정된 오브젝트 이름 및 argument2에서 지정된 선택적 스키마 이름을 근거로 뷰 또는 테이블의 규정되지 않은 이름을 리턴합니다. 리턴된 값은 별명 분석에 사용됩니다.
VARCHAR VARCHAR(128)
VARCHAR, VARCHAR VARCHAR(128)
TABLE_SCHEMA 스칼라 함수 SYSIBM 스칼라 함수는 두 파트 테이블의 스키마 이름 부분 또는 뷰 이름 부분(argument1의 오브젝트 이름 및 argument2의 선택적 스키마 이름이 제공)을 리턴합니다. 리턴된 값은 별명 분석에 사용됩니다.
VARCHAR VARCHAR(128)
VARCHAR, VARCHAR VARCHAR(128)
TAN 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 tangent를 리턴합니다.
DOUBLE DOUBLE
TANH 스칼라 함수 SYSIBM 스칼라 함수는 인수가 라디안으로 표시되는 각도인 인수의 hyperbolic tangent를 리턴합니다.
DOUBLE DOUBLE
TIME 스칼라 함수 SYSIBM 스칼라 함수는 값에서 시간을 리턴합니다.
TIME TIME
TIMESTAMP TIME
VARCHAR TIME
TIMESTAMP 스칼라 함수 SYSIBM 스칼라 함수는 하나의 값 또는 값 쌍으로부터 시간소인을 리턴합니다.
TIMESTAMP TIMESTAMP
VARCHAR TIMESTAMP
VARCHAR, VARCHAR TIMESTAMP
VARCHAR, TIME TIMESTAMP
DATE, VARCHAR TIMESTAMP
DATE, TIME TIMESTAMP
TIMESTAMP_FORMAT 스칼라 함수 SYSIBM 스칼라 함수는 형식 템플리트(argument2)를 사용하여 해석된 문자열(argument1)에서 시간소인을 리턴합니다.
VARCHAR, VARCHAR TIMESTAMP
TIMESTAMP_ISO 스칼라 함수 SYSFUN 스칼라 함수는 날짜, 시간 또는 시간소인 인수에 기반하여 시간소인 값을 리턴합니다. 인수가 날짜이면, 모든 시간 요소에 대해 0을 삽입합니다. 인수가 시간이면, 날짜 요소에 대해 CURRENT DATE 값을 삽입하고 분할 시간 요소에 대해 0을 삽입합니다.
DATE TIMESTAMP
TIME TIMESTAMP
TIMESTAMP TIMESTAMP
VARCHAR(26) TIMESTAMP
TIMESTAMPDIFF 스칼라 함수 SYSFUN 스칼라 함수는 두 시간소인 사이의 차이에 근거하여 argument1 유형의 계산된 간격 수를 리턴합니다. 두 번째 인수는 두 개의 시간소인 유형을 뺀 결과를 CHAR로 변환한 결과입니다. 유효한 구간 유형은 다음과 같습니다.
1
분할초
2
4
8
시간
16
32
64
128
분기
256
년도
INTEGER, CHAR(22) INTEGER
TO_CHAR 스칼라 함수 SYSIBM 스칼라 함수는 시간소인의 문자 표현을 리턴합니다.
VARCHAR_FORMAT과 동일합니다. VARCHAR_FORMAT과 동일합니다.
TO_DATE 스칼라 함수 SYSIBM 스칼라 함수는 문자열에서 시간소인을 리턴합니다.
TIMESTAMP_FORMAT과 동일합니다. TIMESTAMP_FORMAT과 동일합니다.
TRANSLATE 스칼라 함수 SYSIBM 스칼라 함수는 하나 이상의 문자가 다른 문자로 변환된 문자열을 리턴합니다.
CHAR CHAR
VARCHAR VARCHAR
CHAR, VARCHAR, VARCHAR CHAR
VARCHAR, VARCHAR, VARCHAR VARCHAR
CHAR, VARCHAR, VARCHAR, VARCHAR CHAR
VARCHAR, VARCHAR, VARCHAR, VARCHAR VARCHAR
GRAPHIC, VARGRAPHIC, VARGRAPHIC GRAPHIC
VARGRAPHIC, VARGRAPHIC, VARGRAPHIC VARGRAPHIC
GRAPHIC, VARGRAPHIC, VARGRAPHIC, VARGRAPHIC GRAPHIC
VARGRAPHIC, VARGRAPHIC, VARGRAPHIC, VARGRAPHIC VARGRAPHIC
TRUNCATE 또는 TRUNC 스칼라 함수 SYSIBM 스칼라 함수는 소수점의 오른쪽 argument2 위치로 절단된 argument1을 리턴합니다. argument2가 음수인 경우, argument1은 소수점의 왼쪽에 있는 argument2 위치의 절대값으로 절단됩니다.
INTEGER, INTEGER INTEGER
BIGINT, INTEGER BIGINT
DOUBLE, INTEGER DOUBLE
TYPE_ID 스칼라 함수 3 SYSIBM 스칼라 함수는 인수의 동적 데이터 유형의 내부 데이터 유형 ID를 리턴합니다. 이 함수의 결과는 데이터베이스간에 호환이 되지 않음을 유의하십시오.
any-structured-type INTEGER
TYPE_NAME 스칼라 함수 3 SYSIBM 스칼라 함수는 인수의 동적 데이터 유형의 규정되지 않은 이름을 리턴합니다.
any-structured-type VARCHAR(18)
TYPE_SCHEMA 스칼라 함수 3 SYSIBM 스칼라 함수는 인수의 동적 유형의 스키마 이름을 리턴합니다.
any-structured-type VARCHAR(128)
UCASE 또는 UPPER 스칼라 함수 SYSFUN 스칼라 함수는 모든 문자가 대문자로 변환된 문자열을 리턴합니다.
VARCHAR VARCHAR
UCASE 또는 UPPER 스칼라 함수 SYSIBM 스칼라 함수는 모든 문자가 대문자로 변환된 문자열을 리턴합니다.
CHAR CHAR
VARCHAR VARCHAR
7 UNINSTALLAPP 프로시저 7 DB2EAS 7 프로시저(SQL 관리 루틴)는 DB2용 응용프로그램 서버(AS)에서 7 지정된 응용프로그램을 설치 해제합니다.
UNINSTALLAPP 프로시저을 참조하십시오.
VALUE 스칼라 함수 3 SYSIBM 스칼라 함수는 COALESCE와 동일합니다.
VARCHAR 스칼라 함수 SYSIBM 스칼라 함수는 첫 번째 인수의 VARCHAR 표현을 리턴합니다. 두 번째 인수가 존재하면, 결과의 길이를 지정합니다.
character-type VARCHAR
character-type, INTEGER VARCHAR
datetime-type VARCHAR
VARCHAR_FORMAT 스칼라 함수 SYSIBM 스칼라 함수는 템플리트(argument2)에 따라 형식화된 시간소인(argument1)의 문자 표현을 리턴합니다.
TIMESTAMP, VARCHAR VARCHAR
VARCHAR, VARCHAR VARCHAR
VARGRAPHIC 스칼라 함수 SYSIBM 스칼라 함수는 첫 번째 인수의 VARGRAPHIC 표현을 리턴합니다. 두 번째 인수가 존재하면, 결과의 길이를 지정합니다.
graphic-type VARGRAPHIC
graphic-type, INTEGER VARGRAPHIC
VARCHAR VARGRAPHIC
VARIANCE 집계 함수 SYSIBM 이 집계 함수는 숫자 세트의 분산을 리턴합니다.
DOUBLE DOUBLE
WEEK 스칼라 함수 SYSFUN 스칼라 함수는 인수에 있는 연도의 주를 1 - 54 범위 내의 정수 값으로 리턴합니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
WEEK_ISO 스칼라 함수 SYSFUN 스칼라 함수는 인수에 있는 연도의 주를 1 - 53 범위 내의 정수 값으로 리턴합니다. 일주일의 첫 번째 요일은 월요일입니다. 주 1은 목요일을 포함할 연도의 첫 번째 주입니다.
VARCHAR(26) INTEGER
DATE INTEGER
TIMESTAMP INTEGER
YEAR 스칼라 함수 SYSIBM 스칼라 함수는 값의 년 부분을 리턴합니다.
VARCHAR INTEGER
DATE INTEGER
TIMESTAMP INTEGER
DECIMAL INTEGER
『+』 SYSIBM 두 개의 숫자 피연산자를 리턴합니다.
numeric-type, numeric-type max-numeric-type
『+』 SYSIBM 단일 더하기 연산자
numeric-type numeric-type
『+』 SYSIBM 날짜시간 더하기 연산자
DATE, DECIMAL(8,0) DATE
TIME, DECIMAL(6,0) TIME
TIMESTAMP, DECIMAL(20,6) TIMESTAMP
DECIMAL(8,0), DATE DATE
DECIMAL(6,0), TIME TIME
DECIMAL(20,6), TIMESTAMP TIMESTAMP
datetime-type, DOUBLE, labeled-duration-code datetime-type
『-』 SYSIBM 두 개의 숫자 피연산자를 뺍니다.
numeric-type, numeric-type max-numeric-type
『-』 SYSIBM 단일 빼기 연산자
numeric-type numeric-type 1
『-』 SYSIBM 날짜시간 빼기 연산자
DATE, DATE DECIMAL(8,0)
TIME, TIME DECIMAL(6,0)
TIMESTAMP, TIMESTAMP DECIMAL (20,6)
DATE, VARCHAR DECIMAL(8,0)
TIME, VARCHAR DECIMAL(6,0)
TIMESTAMP, VARCHAR DECIMAL (20,6)
VARCHAR, DATE DECIMAL(8,0)
VARCHAR, TIME DECIMAL(6,0)
VARCHAR, TIMESTAMP DECIMAL (20,6)
DATE, DECIMAL(8,0) DATE
TIME, DECIMAL(6,0) TIME
TIMESTAMP, DECIMAL(20,6) TIMESTAMP
datetime-type, DOUBLE, labeled-duration-code datetime-type
『*』 SYSIBM 두 개의 숫자 피연산자를 곱합니다.
numeric-type, numeric-type max-numeric-type
『/』 SYSIBM 두 개의 숫자 피연산자를 나눕니다.
numeric-type, numeric-type max-numeric-type
『||』 SYSIBM ONCAT과 동일함
  • 길이에서 규정되지 않은 문자열 데이터 유형에 대한 참조는 해당 데이터 유형에 대해 최대 길이를 지원하는 것으로 가정해야 합니다.
  • 정밀도와 스케일이 없는 DECIMAL 데이터 유형에 대한 참조는, 지원되는 모든 정밀도와 스케일을 허용하는 것으로 가정해야 합니다.
테이블에 대한 키
any-builtin-type
구별 유형이 아닌 모든 데이터 유형
any-type
데이터베이스에 대해 정의된 모든 유형
any-structured-type
데이터베이스에 대해 정의된 사용자 정의 구조화 유형
any-comparable-type
지정 및 비교 에서 정의된 대로 다른 인수와 비교 가능한 모든 유형.
any-union-compatible-type
결과 데이터 유형 규칙 에 정의된 대로 다른 인수와 호환되는 모든 유형
character-type
모든 문자열 유형: CHAR, VARCHAR, LONG VARCHAR, CLOB
compatible-string-type
다른 인수와 동일한 그룹화로 인한 문자열(예: 하나의 인수가 character-type이면 다른 인수도 character-type이어야 함)
datetime-type
모든 날짜 시간 유형: DATE, TIME, TIMESTAMP
exact-numeric-type
일치하는 모든 숫자 유형: SMALLINT, INTEGER, BIGINT, DECIMAL
graphic-type
모든 2바이트 문자열 유형: GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, DBCLOB
labeled-duration-code
이 유형은 SMALLINT입니다. 함수가 + 또는 - 연산자의 삽입 형식식을 사용하여 호출된 경우, 『표현식』에 정의된 대로 레이블이 붙은 기간을 사용할 수 있습니다. 이름으로 +나 - 연산자를 사용하지 않는 소스 함수의 경우, 함수를 호출할 때 레이블된 지속 기간 코드 인수에 대해 다음 값을 사용해야 합니다.
1
YEAR 또는 YEARS
2
MONTH 또는 MONTHS
3
DAY 또는 DAYS
4
HOUR 또는 HOURS
5
MINUTE 또는 MINUTES
6
SECOND 또는 SECONDS
7
MICROSECOND 또는 MICROSECONDS
LOB-type
모든 대형 오브젝트(LOB) 유형: BLOB, CLOB, DBCLOB
max-numeric-type
최대값이 가장 오른쪽의 numeric-type으로 정의되는 인수의 최대 숫자 유형
max-string-type
최대값이 가장 오른쪽의 character-type 또는 graphic-type으로 정의되는 인수의 최대 문자열 유형 인수가 BLOB이면, max-string-type은 BLOB입니다.
numeric-type
숫자 유형으로는 SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE이 있습니다.
string-type
character-type, graphic-type 또는 BLOB의 모든 유형
테이블 각주
1
입력 매개변수가 SMALLINT일 때, 결과 유형은 INTEGER입니다. 입력 매개변수가 REAL일 때 결과 유형은 DOUBLE입니다.
2
허용되는 키워드는 ISO, USA, EUR, JIS 및 LOCAL입니다. 연속 함수 이름은 소스 함수로 지원되지 않습니다.
3
이 함수를 소스 함수로 사용할 수 없습니다.
4
키워드 ALL 또는 DISTINCT는 첫 번째 매개변수 전에 사용될 수 있습니다. DISTINCT를 지정하면, 사용자가 정의하는 구조화 유형의 사용, long 문자열 유형 또는 DATALINK 유형은 지원되지 않습니다.
5
사용자 정의된 구조화 유형의 사용, long 문자열 유형 또는 DATALINK 유형은 지원되지 않습니다.
6
RAISE_ERROR에서 리턴되는 유형은 사용 컨텍스트에 따라 다릅니다. 특정 유형으로 캐스트하지 않을 경우, RAISE_ERROR는 CAST 표현식 내에서 호출에 적합한 유형을 리턴합니다.
7
graphic-type, LOB-type, long 문자열 유형 및 DATALINK 유형은 지원되지 않습니다.
표 131. 집계 함수
함수 설명
AVG 집계 함수 숫자 세트의 평균을 리턴합니다.
CORRELATION 집계 함수 수 쌍 세트의 상관 계수를 리턴합니다.
COUNT 행이나 값 세트에 행의 수나 값의 수를 리턴합니다.
COUNT_BIG 집계 함수 행이나 값 세트에 행의 수나 값의 수를 리턴합니다. 결과는 INTEGER의 최대값보다 클 수 있습니다.
COVARIANCE 집계 함수 수 쌍의 세트의 편차를 리턴합니다.
GROUPING 집계 함수 그룹화 세트가 생성한 소계 행을 가리키는 데 그룹화 세트와 슈퍼 그룹이 사용됩니다. 리턴된 값은 0 또는 1입니다. 1 값은 리턴된 행에서 인수의 값이 널(NULL) 값이고 행이 그룹화 세트에 대해 생성되었음을 의미합니다. 이 생성된 행은 그룹화 세트에 대해 소계를 제공합니다.
MAX 집계 함수 값 세트에서 최대값을 리턴합니다.
MIN 집계 함수 값 세트에서 최소값을 리턴합니다.
REGRESSION 함수 REGR_AVGX 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
REGRESSION 함수 REGR_AVGY 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
REGRESSION 함수 REGR_COUNT 집계 함수는 회귀 행을 맞추는 데 사용된 널(NULL)이 아닌 숫자 쌍의 수를 리턴합니다.
REGRESSION 함수 REGR_INTERCEPT 또는 REGR_ICPT 집계 함수는 회귀 행의 y 절편을 리턴합니다.
REGRESSION 함수 REGR_R2 집계 함수는 회귀에 대한 결정 계수를 리턴합니다.
REGRESSION 함수 REGR_SLOPE 집계 함수는 행의 기울기를 리턴합니다.
REGRESSION 함수 REGR_SXX 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
REGRESSION 함수 REGR_SXY 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
REGRESSION 함수 REGR_SYY 집계 함수는 진단 통계를 계산하는 데 사용되는 양을 리턴합니다.
STDDEV 집계 함수 숫자 세트의 표준 편차를 리턴합니다.
SUM 집계 함수 숫자 세트의 합을 리턴합니다.
VARIANCE 집계 함수 숫자 세트의 분산을 리턴합니다.
표 132. 캐스트 스칼라 함수
함수 설명
BIGINT 스칼라 함수 정수 상수의 양식으로 숫자의 64 비트 정수 표현 또는 문자열을 리턴합니다.
BLOB 스칼라 함수 모든 유형의 문자열의 BLOB 표현을 리턴합니다.
CHAR 스칼라 함수 값의 CHARACTER 표현을 리턴합니다.
CLOB 스칼라 함수 값의 CLOB 표현을 리턴합니다.
DATE 스칼라 함수 값에서 DATE를 리턴합니다.
DBCLOB 스칼라 함수 문자열의 DBCLOB 표현을 리턴합니다.
DECIMAL 스칼라 함수 숫자의 DECIMAL 표현을 리턴합니다.
DOUBLE 스칼라 함수 숫자의 DOUBLE PRECISION 표현을 리턴합니다.
FLOAT 스칼라 함수 숫자의 FLOAT 표현을 리턴합니다.
GRAPHIC 스칼라 함수 문자열의 GRAPHIC 표현을 리턴합니다.
INTEGER 스칼라 함수 숫자의 INTEGER 표현을 리턴합니다.
LONG_VARCHAR 스칼라 함수 값의 LONG VARCHAR 표현을 리턴합니다.
LONG_VARGRAPHIC 스칼라 함수 값의 LONG VARGRAPHIC 표현을 리턴합니다.
REAL 스칼라 함수 숫자의 REAL 표현을 리턴합니다.
SMALLINT 스칼라 함수 숫자의 SMALLINT 표현을 리턴합니다.
TIME 스칼라 함수 값에서 TIME을 리턴합니다.
TIMESTAMP 스칼라 함수 하나의 값 또는 값 쌍으로부터 TIMESTAMP를 리턴합니다.
VARCHAR 스칼라 함수 값의 VARCHAR 표현을 리턴합니다.
VARGRAPHIC 스칼라 함수 값의 VARGRAPHIC 표현을 리턴합니다.
표 133. 데이터링크 스칼라 함수
함수 설명
DLCOMMENT 스칼라 함수 DATALINK 값의 주석 속성을 리턴합니다.
DLLINKTYPE 스칼라 함수 DATALINK 값의 링크 유형 속성을 리턴합니다.
DLNEWCOPY 스칼라 함수 참조된 파일이 변경되었음을 나타내는 속성을 가진 DATALINK 값을 리턴합니다.
DLPREVIOUSCOPY 스칼라 함수 파일의 이전 버전이 리스토어되어야 함을 나타내는 속성을 가진 DATALINK 값을 리턴합니다.
DLREPLACECONTENT 스칼라 함수 DATALINK 값을 리턴합니다. 함수가 UPDATE문의 SET절 오른쪽에 있거나 INSERT문의 VALUES절에 있는 경우, 리턴된 값을 지정하면 다른 파일로 파일 내용을 대체한 후 이에 대한 링크를 작성하게 됩니다.
DLURLCOMPLETE 스칼라 함수 DATALINK 값에서 전체 URL(액세스 토큰 포함)을 리턴합니다.
DLURLCOMPLETEONLY 스칼라 함수 링크 유형이 URL인 DATALINK 값으로부터 전체 URL(액세스 토큰없이)을 리턴합니다.
DLURLCOMPLETEWRITE 스칼라 함수 링크 유형이 URL인 DATALINK 값으로부터 지정된 파일을 수정하는 데 필요한 경로 및 파일 이름을 리턴합니다.
DLURLPATH 스칼라 함수 DATALINK 값의 경로 및 파일 이름(액세스 토큰 포함)을 리턴합니다.
DLURLPATHONLY 스칼라 함수 DATALINK 값의 경로 및 파일 이름(액세스 토큰 없음)을 리턴합니다.
DLURLPATHWRITE 스칼라 함수 링크 유형이 URL인 DATALINK 값으로부터 지정된 서버 내부에 있는 파일에 수정하는 데 필요한 경로 및 파일 이름을 리턴합니다.
DLURLSCHEME 스칼라 함수 DATALINK 값의 URL 속성으로부터 스킴을 리턴합니다.
DLURLSERVER 스칼라 함수 DATALINK 값의 URL 속성으로부터 서버를 리턴합니다.
DLVALUE 스칼라 함수 data-location 인수, 링크 유형 인수 및 선택적 comment-string 인수로부터 DATALINK 값을 빌드합니다.
표 134. 날짜/시간 스칼라 함수
함수 설명
DAY 스칼라 함수 값의 일(day) 부분을 리턴합니다.
DAYNAME 스칼라 함수 db2start가 발행된 때의 로케일에 따라, 인수의 요일 부분에 대한 요일 이름(예: Friday)이 포함된 대소문자 혼용 문자열을 리턴합니다.
DAYOFWEEK 스칼라 함수 값에서 요일을 리턴하며, 여기서 1은 일요일, 7은 토요일입니다.
DAYOFWEEK_ISO 스칼라 함수 값에서 요일을 리턴하며, 여기서 1은 월요일, 7은 일요일입니다.
DAYOFYEAR 스칼라 함수 값에서 일(day)을 리턴합니다.
DAYS 스칼라 함수 날짜의 정수 표현을 리턴합니다.
HOUR 스칼라 함수 값의 시간 부분을 리턴합니다.
JULIAN_DAY 스칼라 함수 B.C. 4712년 1월 1일에서 인수에 지정된 날짜까지의 일 수를 나타내는 정수 값을 리턴합니다.
MICROSECOND 스칼라 함수 값의 마이크로초 부분을 리턴합니다.
MIDNIGHT_SECONDS 스칼라 함수 자정과 지정된 시간 값 사이의 시간(초 단위)를 나타내는 정수 값을 리턴합니다.
MINUTE 스칼라 함수 값의 분 부분을 리턴합니다.
MONTH 스칼라 함수 값의 월 부분을 리턴합니다.
MONTHNAME 스칼라 함수 데이터베이스를 시작할 때의 로케일을 기초로 날짜 또는 시간소인이 되는 인수의 월 부분의 월 이름(예: January)을 포함하는 대소문자 혼용 문자열을 리턴합니다.
QUARTER 스칼라 함수 날짜가 해당되는 분기를 표시하는 정수를 리턴합니다.
SECOND 스칼라 함수 값의 초 부분을 리턴합니다.
TIMESTAMP_FORMAT 스칼라 함수 형식 템플리트(argument2)를 사용하여 해석된 문자열(argument1)에서 시간소인을 리턴합니다.
TIMESTAMP_ISO 스칼라 함수 날짜, 시간 또는 시간소인 인수에 기초화 시간소인 값을 리턴합니다. 인수가 날짜이면, 모든 시간 요소에 대해 0을 삽입합니다. 인수가 시간이면, 날짜 요소에 대해 CURRENT DATE 값을 삽입하고 분할 시간 요소에 대해 0을 삽입합니다.
TIMESTAMPDIFF 스칼라 함수 두 시간소인 사이의 차이에 근거하여 argument1 유형의 계산된 간격 수를 리턴합니다. 두 번째 인수는 두 개의 시간소인 유형을 뺀 결과를 CHAR로 변환한 결과입니다.
TO_CHAR 스칼라 함수 시간소인의 CHARACTER 표현을 리턴합니다.
TO_DATE 스칼라 함수 문자열에서 시간소인을 리턴합니다.
VARCHAR_FORMAT 스칼라 함수 템플리트(argument2)에 따라 형식화된 시간소인(argument1)의 CHARACTER 표현을 리턴합니다.
WEEK 스칼라 함수 값에서 주(일요일부터 시작)를 리턴합니다.
WEEK_ISO 스칼라 함수 값에서 주(월요일부터 시작)를 리턴합니다.
YEAR 스칼라 함수 값의 연도 부분을 리턴합니다.
표 135. 파티션 스칼라 함수
함수 설명
DBPARTITIONNUM 스칼라 함수 행의 데이터베이스 파티션 번호를 리턴합니다. 인수는 테이블 내의 컬럼 이름입니다.
HASHEDVALUE 스칼라 함수 행의 파티션 맵 인덱스(0 - 4095)를 리턴합니다. 인수는 테이블 내의 컬럼 이름입니다.
표 136. 숫자 스칼라 함수
함수 설명
ABS 또는 ABSVAL 스칼라 함수 숫자의 절대값을 리턴합니다.
ACOS 스칼라 함수 숫자의 arc cosine을 라디안으로 리턴합니다.
ASIN 스칼라 함수 숫자의 arc sine을 라디안으로 리턴합니다.
ATAN 스칼라 함수 숫자의 arc tangent를 라디안으로 리턴합니다.
ATANH 스칼라 함수 숫자의 hyperbolic arc tangent를 라디안으로 리턴합니다.
ATAN2 스칼라 함수 x와 y 좌표의 arc tangent를 라디안으로 표시되는 각도로 리턴합니다.
CEILING 또는 CEIL 스칼라 함수 숫자보다 크거나 같은 최소의 정수 값을 리턴합니다.
COS 스칼라 함수 숫자의 cosine을 리턴합니다.
COSH 스칼라 함수 숫자의 hyperbolic cosine을 리턴합니다.
COT 스칼라 함수 인수(argument)의 cotangent를 리턴합니다. 여기서, 인수는 라디안으로 표시되는 각도입니다.
DEGREES 스칼라 함수 각도의 숫자를 리턴합니다.
DIGITS 스칼라 함수 숫자의 절대값의 문자열 표현을 리턴합니다.
EXP 스칼라 함수 인수가 지정한 제곱으로 올릴 자연 대수의 밑 값을 리턴합니다.
FLOOR 스칼라 함수 숫자보다 크거나 작은 최대의 정수 값을 리턴합니다.
LN 스칼라 함수 숫자의 자연 대수를 리턴합니다.
LOG 스칼라 함수 숫자의 자연 대수를 리턴합니다(LN과 동일).
LOG10 스칼라 함수 숫자의 일반 대수(기본 10)를 리턴합니다.
MOD 스칼라 함수 첫 번째 인수를 두 번째 인수로 나눈 나머지를 리턴합니다.
MULTIPLY_ALT 스칼라 함수 두 인수의 곱을 10진수 값으로 리턴합니다. 이 함수는 인수 정밀도의 합이 31보다 클 경우에 유용합니다.
POWER 스칼라 함수 첫 번째 인수를 두 번째 인수의 제곱으로 올린 결과를 리턴합니다.
RADIANS 스칼라 함수 각도로 표시된 인수에 대해 라디안 수를 리턴합니다.
RAND 스칼라 함수 난수를 리턴합니다.
ROUND 스칼라 함수 10진수 위치의 지정된 숫자로 반올림되어진 숫자 값을 리턴합니다.
SIGN 스칼라 함수 숫자의 부호를 리턴합니다.
SIN 스칼라 함수 숫자의 sine을 리턴합니다.
SINH 스칼라 함수 숫자의 hyperbolic sine을 리턴합니다.
SQRT 스칼라 함수 숫자의 제곱근을 리턴합니다.
TAN 스칼라 함수 숫자의 tangent를 리턴합니다.
TANH 스칼라 함수 숫자의 hyperbolic tangent를 리턴합니다.
TRUNCATE 또는 TRUNC 스칼라 함수 10진수 위치의 지정된 숫자에서 절단된 숫자 값을 리턴합니다.
표 137. 문자열 스칼라 함수
함수 설명
ASCII 스칼라 함수 인수의 가장 왼쪽 문자의 ASCII 코드 값을 정수로 리턴합니다.
CHR 스칼라 함수 인수에 의해 지정된 ASCII 코드 값을 갖고 있는 문자를 리턴합니다.
CONCAT 스칼라 함수 두 문자열의 병합인 문자열을 리턴합니다.
DECRYPT_BIN and DECRYPT_CHAR 스칼라 함수 암호 문자열을 사용하여 암호화된 데이터 해독의 결과 값을 리턴합니다.
DECRYPT_BIN and DECRYPT_CHAR 스칼라 함수 암호 문자열을 사용하여 암호화된 데이터 해독의 결과 값을 리턴합니다.
DIFFERENCE 스칼라 함수 SOUNDEX 함수로 판별된대로, 두 개의 인수 문자열에 있는 단어들의 음조 간 차이를 리턴합니다. 4의 값은 문자열 음조가 같음을 의미합니다.
ENCRYPT 스칼라 함수 데이터 문자열 표현식을 암호화한 결과 값을 리턴합니다.
GENERATE_UNIQUE 스칼라 함수 동일한 함수의 다른 모든 실행과 비교하여 고유한 비트 데이터 문자열을 리턴합니다.
GETHINT 스칼라 함수 암호 힌트가 있는 경우를 리턴합니다.
INSERT 스칼라 함수 문자열을 리턴하며, 여기서, argument3바이트는 argument1(argument2에서 시작)에서 삭제되었으며 argument4argument1(argument2에서 시작)으로 삽입되었습니다.
LCASE 또는 LOWER 스칼라 함수 모든 문자가 소문자로 변환된 문자열을 리턴합니다.
LEFT 스칼라 함수 문자열에서 가장 왼쪽의 문자를 리턴합니다.
LOCATE 스칼라 함수 다른 문자열 내에서 한 문자열의 시작 위치를 리턴합니다.
LTRIM 스칼라 함수 문자열 표현식의 시작에서 공백을 제거합니다.
POSSTR 스칼라 함수 다른 문자열 내에서 한 문자열의 시작 위치를 리턴합니다.
REPEAT 스칼라 함수 argument2의 배수만큼 반복되는 argument1로 구성된 문자열을 리턴합니다.
REPLACE 스칼라 함수 argument1에서 argument2의 모든 어커런스를 argument3으로 대체합니다.
RIGHT 스칼라 함수 문자열에서 가장 오른쪽의 문자를 리턴합니다.
RTRIM 스칼라 함수 문자열 표현식의 끝에서 공백을 제거합니다.
SOUNDEX 스칼라 함수 인수에서 단어들의 음조를 나타내는 4문자 코드를 리턴합니다. 이 결과는 다른 문자열의 음조와 비교될 수 있습니다.
SPACE 스칼라 함수 지정된 수의 공백으로 구성된 문자열을 리턴합니다.
SUBSTR 스칼라 함수 문자열의 하위 문자열을 리턴합니다.
TRANSLATE 스칼라 함수 문자열의 하나 이상의 문자가 다른 문자로 변환된 문자열을 리턴합니다.
UCASE 또는 UPPER 스칼라 함수 모든 문자가 대문자로 변환된 문자열을 리턴합니다.
표 138. 기타 스칼라 함수
함수 설명
COALESCE 스칼라 함수 널(NULL)이 아닌 첫 번째 인수를 리턴합니다.
DEREF 스칼라 함수 참조 유형 인수의 목표 유형 인스턴스를 리턴합니다.
EVENT_MON_STATE 스칼라 함수 특정 이벤트 모니터의 작동 상태를 리턴합니다.
HEX 스칼라 함수 값의 16진수 표현을 리턴합니다.
IDENTITY_VAL_LOCAL 스칼라 함수 식별 컬럼에 대해 가장 최근에 지정된 값을 리턴합니다.
LENGTH 스칼라 함수 값의 길이를 리턴합니다.
NULLIF 스칼라 함수 인수가 같을 경우에는 널(NULL) 값을, 같지 않을 경우에는 첫 번째 인수의 값을 리턴합니다.
RAISE_ERROR 스칼라 함수 SQLCA에서 오류를 발생시킵니다. 리턴된 sqlstate는 argument1에 의해 표시됩니다. 두 번째 인수에 리턴되는 모든 텍스트가 포함됩니다.
REC2XML 스칼라 함수 XML 태그로 형식화되고 컬럼 이름과 컬럼 데이터가 들어 있는 문자열을 리턴합니다.
TABLE_NAME 스칼라 함수 argument1에서 지정된 오브젝트 이름 및 argument2에서 지정된 선택적 스키마 이름을 근거로 뷰 또는 테이블의 규정되지 않은 이름을 리턴합니다. 리턴된 값은 별명 분석에 사용됩니다.
TABLE_SCHEMA 스칼라 함수 두 파트 테이블의 스키마 이름 부분 또는 뷰 이름 부분(argument1의 오브젝트 이름 및 argument2의 선택적 스키마 이름이 제공)을 리턴합니다. 리턴된 값은 별명 분석에 사용됩니다.
TYPE_ID 스칼라 함수 인수의 동적 데이터 유형의 내부 데이터 유형 ID를 리턴합니다. 이 함수의 결과는 데이터베이스간에 호환이 되지 않습니다.
TYPE_NAME 스칼라 함수 인수의 동적 데이터 유형의 규정화되지 않은 이름을 리턴합니다.
TYPE_SCHEMA 스칼라 함수 인수의 동적 데이터 유형의 스키마 이름을 리턴합니다.
VALUE 스칼라 함수 널(NULL)이 아닌 첫 번째 인수를 리턴합니다.

다음 주제는 다음을 참조하십시오. SQL 참조서, 볼륨 1.

 

DB2 UDB 운용명령어

DB2 | 2006. 3. 20. 13:45
Posted by 시반

     

 

 Ø       UDB Start/Stop 명령어

 Ø         Tablespace & Table에 대한 정보

 Ø         Database 백업 & 복구 명령어

 Ø         에러 & 명령어 구문에 대한 도움말

 Ø         Crontab 명령어

 Ø         UDB모니터링 툴

 Ø       REORG & RUNSTATS 

 Ø       DB2  Administration  Tools 

 Ø       DB2 기타 유틸리티 

 Ø       DBM CFG  &  DB CFG  환경 변수

 

 

UDB Start/Stop 명령어

 

 

l       UDB Start

IBM UDB를 운용하려면, 다음과 같은 명령들을 이용하여

데이타베이스, Instance 사용자로 로그인 한 다음,

데이타베이스를 시동시켜야 한다.

  # su    db2inst1

  $ db2start

   $ db2  activate  db  depsdb

 

 

    ( 주 : DB2 ACTIVATE DB명령어는 DB global memory를 미리 메모리에 상주시키는 명령어로

           처음 connect 시의 시간을 단축시키는 효과가 있음,

           단 DB를 stop시킬때  db2 deactivate db 명령어를 이용하여 memory등을

           release시켜주어야 함)

 

l       UDB의 사용

데이타베이스가 시동되면, 사용하고자 하는 데이타베이스로 연결을

한다.  만약 데이타베이스가 없으면 "create database " 명령어를

이용하여 데이타베이스를 생성시킨 후 연결한다.

 

  $ db2  create  db  database명

   $ db2  connect to  database명  user userid using password

 

   데이타베이스가 연결되면, SQL 문을 사용하여 테이블의 생성,조작을  수행할 수 있다.

 

  ex)  select  , insert  , update , delete

 


l       UDB 종료

테이블에 대한 조작이 끝나면,  다음의 명령어를 이용하여 데이터베이스의 연결을 중단하고, 운용중인 데이타베이스의 시동을 끝낸다.  

   $  su    db2inst1

   $  db2  terminate

   $  db2  force  application  all

   $  db2stop

 


참고사항

 

l       db2start시 에러발생 메시지가 나타났을 때

 “DB2START 처리가 성공적이었습니다.그러나 하나 이상의 통신 지원이 성공적이지 못했습니다."라는 메시지가 나오면....

 

  $  cd  /home/db2inst1/sqllib/db2dump

  $  vi  db2diag.log

      파일의 마지막 부분에서 원인을 파악한다.

   ex) TCPIP service port가 등록이 되지 않았다라는 메시지가 나오면

       dbm cfg에 service port를 등록시켜주어야 한다.

     Db2 update dbm cfg using svcename 50000.

 

 


 

Tablespace & Table에 대한 정보

 

 

l       Tablespace의 정보를 보고자 할 경우

 

 

  $ db2  connect  to  depsdb

  $ db2  list  tablespaces |  more

  or

  $db2 list tablespace show detail | more

 

 


l       Table의 list를 보고자 할 경우

  $  db2  connect  to  depsdb

   $  db2  list  tables  for  all  |  more

 

 

  


l       Table의 column 정보를 보고자 할 경우

 $  db2  connect  to  depsdb

 $  db2 “select  tabschema,  tabname,  colname,  typename,

length, scale,  default,  nulls

from  syscat.columns “

또는 제어센타 이용

 

 

  


참고사항

 

l       Tablespace 크기가 부족할 경우

  $ db2 connect  to  depsdb

  $ db2 list  tablespaces  show  detail  |  more

 

 

‘상태’필드가 0x0000으로 나오는지 확인

‘가용 페이지 수’가 충분한지 확인

만약 가용페이지 수가 충분하지 못하면 테이블 스페이스의 크기를 늘려줌

 

       ex) GisaTBS가 부족할 경우

   #  su    root

      smit에서 datavg1에 Logical Volume 64M 짜리를 하나 만듬

   #  cd  /dev

   #  chown  db2inst1:db2iadm1  gisalv2

   $  su    db2inst1

   $  db2  connect  to  depsdb

   $  db2  “alter  tablespace  GisaTBS  add  (device  ‘/dev/rgisalv2’  16000)”

 

 


 

l       TableSpace가 Backup Pending 상태에 빠졌을 경우

#  su   -  db2inst1

$  db2 connect to depsdb

$  db2 list tablespaces | more

 

 

   ex) GisaTBS가 백업 보류

   $  db2 backup database depsdb tablespace GisaTBS

 

 


l       TableSpace가 Check Pending 상태에 빠졌을 경우

 

다음은 테이블의 점검보류 상태를 조회하는 것이다.

 

SUBSTR은 SYSCAT.TABLES의 CONST_CHECKED 컬럼에 있는 처음

 

2바이트를 추출하는데 사용된다.

 

첫번째 바이트는 외부 키 의무 규정을 나타내고,

 

두번째 바이트는 점검 의무 규정을 나타낸다.

 

 $  db2  “ SELECT  TABNAME,  SUBSTR( CONST_CHECKED, 1, 1 ) 

        AS  FK_CHECKED,  SUBSTR( CONST_CHECKED, 2, 1 )

        AS  CC_CHECKED   FROM  SYSCAT.TABLES

        WHERE STATUS = 'C' “

 

 

 

      그 다음  T1과 T2 테이블을 점검 보류 상태로 설정합니다.

 

    $  db2  SET  CONSTRAINTS  FOR  T1,  T2  OFF

  


      다음과 같이 수행하여 T1에 대한 제한 조건을 점검하고 첫번째 위반만을 얻습니다.

 

   $  db2  SET  CONSTRAINTS  FOR  T1  IMMEDIATE  CHECKED

 

  


      T1 및 T2에 대한 제한 조건을 점검하고, 예외 테이블 E1과 E2로 위반 행을 기입한다.

 

 $  db2  SET  CONSTRAINTS  FOR  T1,  T2  IMMEDIATE  CHECKED

          FOR EXCEPTION IN T1 USE E1,  IN T2 USE E2

 

 

 


      IMMEDIATE CHECKED 옵션으로 T1의 FOREIGN KEY 제한 조건 점검과 T2의 Check

 

      제한 조건 점검이 무시되도록 합니다

     

  $  db2  SET  CONSTRAINTS  FOR  T1  FOREIGN  KEY, T2  CHECK  IMMEDIATE  UNCHECKED

 

 

 


 

Database 백업 & 복구 명령어

 

 

데이타베이스의 안전성을  높이려면  주기적인  backup 과 데이타베이스 손상시 restore 해 주어야 한다.

 

l       Database 백업

  #  su    db2inst1

   $  db2  list  applications

사용자가 있으면,

$  db2  force  applications  all

    $  db2  backup  db  depsdb  to  /dev/rmt0

 

 


l       AIX 에서 backup image 의 형태는 다음과 같다.

Edi. 0. dsna . NODE0000 . CATN0000 . 1996.12.16121212  . 001

--- -- -----  ---------------------  -----------------------

 |   |    |      |                             |

 |   |  instance | backup image의 순차번호

 |   |  name     | backup한 날짜,시간(분,초 포함)     

 |   |           |         

 |   |           +-------> UDB EEE가 사용하기 위한 필드

 |   +--------->  사용된 backup 유형

 |                0 : 전체 데이터 베이스의 backup

 |                3 : tablespace 의 backup

 |                4 : 테이블 적재의 복사

 |

 +--------> 데이터베이스 별명

 

 

 

  


l       Database 복구

  #  su –db2inst1

$  db2 restore db depsdb  from  /dev/rmt0

  taken  at date_time  to  target_directory]

 

   (여기서 * date_time은 backup  image  file에 포함된 timestamp임)


 

l       데이터베이스가 archive logging일 경우에는 rollforward 명령어를 사용한다.

$  db2 rollforward db database_alias to end of logs ans stop

   overflow  log  path   Log_Directory

 

      만일 특정 시점까지만 복원하려면,  다음과 같습니다.

  $  db2  rollforward  db  database명  to  isotime and  stop

 

 


에러 & 명령어 구문에 대한 도움말

 

 l       에러 메세지 발생시

만약 데이터베이스 운용시 문제가 생기면, vi에디터를 이용하여   

$HOME/sqllib/db2dump 디렉토리내의 db2diag.log 파일을 조사한다.

만약 SQL Error Code가 발생하였으면,

다음과 같이 해당 메시지를 찾아본다.

   $  su      db2inst1

   $  db2   “ ?   Sql0805 ”

   에러메세지 원인과 조치를 보고 실행

 

 

  이 메시지에는 에러의 원인과 해결을 위한 조치가 포함되어 있으므로 이를 통하여 문제점을

 

  해결할 수 있다.

 

l       명령어 구문 확인

 

   $  su    db2inst1

   $  db2  “ ?  list ”

 

 

  


참고사항

 

 

l       갑자기 느려졌을 경우

 

 ü       LOCK 상태 확인

   $  su    db2inst1

   $  db2 get snapshot for locks on depsdb

  유지되는 잠금, 현재 잠금대기중인 에이전트, 응용프로그램명,

  응용프로그램 상태, 총대기시간, 모드상태 등을 확인

 

 ü       Index 설정 여부

$  su    db2inst1

$  dynexpln –d depsdb “select …..” –o explain.out 

 

 

l       손상된 데이터베이스의 강제 삭제

 

 만약 데이타베이스의 손상으로 데이타베이스의 삭제가 제대로

 되지 않을 경우에는 다음의 디렉토리를 삭제해야 한다.

   $HOME/instance_name$  rm   -r   SQL0000x

 

 (여기서 0000x는  숫자로  데이타베이스가 생성된  순서를 나타낸다.

    , 손상된 데이타베이스의 물리적 디렉토리임)


 

 

Crontab  명령어

 

l       Crontab 명령어

crontab  [ -e | -l | -r | -v | File ]

 

 

 

  Crontab  [ -e / -l / -r / -v / File]

   -l    crontab file을 리스트

      - r        crontab directory에서crontab file 삭제

     -v      cron jobs 상태 보기

 

 

l       crontab의 사용법

 

root 로 login 한 다음 ,

#  crontab  -e

      

# COMPONENT_NAME:(CMDCNTL)commands needed for basic system needs

#

# FUNCTIONS:

# (C) COPYRIGHT International Business Machines Corp. 1989,1994

# All Rights Reserved

# Licensed Materials - Property of IBM

# US Government Users Restricted Rights - Use, duplication or

# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

  0 11 * * * /usr/bin/errclear -d S,O 30

 0 12 * * * /usr/bin/errclear -d H 90

  0 0 * * * /tmp/lsh/rmscript

  53 17 * * 2,4,6  /home/udbinst/myjob

 

  다음에서 논의할  crontab  file entry Format 으로  편집합니다.

 끝부분의 실행파일에서는 다음과 같이 편집해야 합니다.

#  vi  myjob

     su - db2inst1 “–c db2  backup  db  dbalias  to  /db2/”

 

ü       crontab File Entry Format

 

   crontab  file은  각각의cron job을 위해 다음의 Entry를 포함한다.그 형태는 다음과 같다.

  minute  hour  day_of_month  month  weekday  command

 

  각각의 fields 는  다음의 값을 수용합니다.

      minute        0 through 59

      hour          0 through 23

      day_of_month  1 through 31

      month         1 through 12

      weekday       0 through 6 for Sunday through Saturday

      command       a shell command

 

 

 ü       crontab 의 사용예

 .  /var/adm/cron/crontabs 디렉토리에 mycronjobs 파일을 상기의 형식으로 만든 다음,

     다음의 명령을 수행한다.

     #  crontab mycronjobs

 .  mycronjobs 파일을 상기의 형식의 예는 다음과 같다.

① 매시간마다 console에 시간을 출력하는 예

   0  *  *  *  *        echo The hour is `date` . >/dev/console

② 월,수,금요일 오전6시 30분마다 calendar 명령을 수행

   30  6  *  *  1, 3, 5    /usr/bin/calendar

③ 매일 6:30마다 calendar 명령을 수행

   30  6  *  *  *        /usr/bin/calendar

8월 한밤중마다 maintenance의 script를 수행

   0  23  *  8  *       /u/harry/bin/maintenance

 


 

UDB모니터링 툴

 

 

l       EVENT MONITOR

$ db2 create  event  monitor  testmon  for  statements

  write  to  file  --------- -------------

 (event monitor 이름) (database,transactions, tables,...)

   '/home/rdb/int1hqd1/SQL00001/db2event'  maxfiles 24

    maxfilesize  1024  nonblocked  append “

$ db2  “set  event  monitor  testmon  state  1”  

$ db2  “select  evmonname , event_mon_state(evmonname)

        from syscat.eventmonitors “

$ db2evmon  -db  sample  -evm   testmon 

$ db2evmon  -path  /home/rdb/int1hqd1/SQL00001/db2event

 (이전 작업의 대체용)

 

 

 


l       SNAPSHOT MONITOR

$ db2  “ get   monitor   switches” 

$ db2   “update   monitor  switches  using  bufferpool  on

  uow  on “

$ db2   “ get  snapshot for  all  on  db명 “ | more

$ db2   “ get  snapshot for  locks on  db명 “ | more

$ db2   “ get  snapshot for  application agentid # “ |more

    ( # 은 application handle ID임)

 

 

 


l       EXPLAIN TOOL

db2expln 툴은 시스템 카탈로그  테이블에  저장되어 있는 

패키지의 정적 SQL에 대한 선택된 액세스 플랜을 기술합니다.

db2expln   -d   (db 명)  -c  (user명)  -p  (package명)

  -s  (section 번호) -o   (outfile 이름)

 

 


   * Interactive SQL에 대해서는

export DYNEXPLN_OPTIONS='blocking all isolation ur queryopt 3’

dynexpln   <dbname>  "<SQL statement>”

 

  


l       explain 문

EXPLAIN문은  제공된  설명 가능한  명령문에  선택된  액세스  

플랜에 관한 정보를 보관하고, 이 정보를 Explain테이블에 둔다.

설명가능 명령문은  DELETE, INSERT,  SELECT,  SELECT INTO,  

UPDATE, VALUES 또는 VALUES INTO SQL문이다.

이 명령문은 적용 업무 프로그램에 포함되거나  

대화식으로  발행될 수 있다.

 명령문은 동적으로 준비될 수 있는 실행 가능한 명령문이다.

      ex1> 간단한 SELECT문을 설명하고

           QUERYNO = 13이라는 태그를 표시한다.

EXPLAIN  PLAN  SET  QUERYNO = 13  FOR  SELECT  C1  FROM  T1

 


      ex2> 간단한 SELECT문을 설명하고

           QUERYTAG = 'TEST13' 표시를 합니다.

EXPLAIN  PLAN  SELECTION  SET  QUERYTAG = 'TEST13'

  FOR  SELECT  C1  FROM  T1

 

 


     ex3> 간단한 SELECT문을 설명하고 QUERYNO = 13과

QUERYTAG = 'TEST13'으로 태그를 붙인다.

EXPLAIN  PLAN  SELECTION  SET QUERYNO = 13 SET QUERYTAG =

  'TEST13’  FOR  SELECT  C1  FROM  T1

 

  


   ex4>  Explain 테이블이 존재하지 않으면

         Explain 정보를 확보한다.

EXPLAIN  ALL  FOR  SELECT  C1  FROM  T1

 

 


l       Visual Explain

   Visual Explain을 실행하기 위해 다음과 같이 explain 정보를

저장할 테이블을 생성해야 한다.

 /$HOME/sqllib/misc> db2   connect   to   sample

 /$HOME/sqllib/misc> db2   -tf   EXPLAIN.DDL

 

 ü       현재의 explain snapshot을 변경

   db2   set   current   explain   snapshot   yes

 

 ü       bindfile 내의 source 를 보기 위해 다음을 수행합니다.

   db2bfd   bindfile_name

 

 


REORG & RUNSTATS

 

 

l       reorgchk 수행

db2 -r out_file reorgchk current statistics on table tbl_name

  또는

  db2  reorgchk  update  statistics  on  table  system

 


 

      위의 명령을 수행하면  다음과  같은 결과를 얻을 수 있습니다.

Table statistics:

 F1: 100*OVERFLOW/CARD < 5

 F2: 100*TSIZE / ((FPAGES-1) * 4020) > 70

 F3: 100*NPAGES/FPAGES > 80

CREATOR NAME  CARD OV NP FP TSIZE F1 F2 F3 REORG

 -------------------------------------------------------------------------------

SYSIBM SYSCHECKS      -   -  -  -    -    -   -   -   ---

SYSIBM SYSDATATYPES  13  0  1  1  1027  0   -  100  ---

SYSIBM SYSFUNCTIONS 104  0  8  8   728  0  2   100  -*-

SYSIBM SYSINDEXES    57  17  3  5  9063  29  56  60 ***

 

Index statistics:

 F4: CLUSTERRATIO or normalized CLUSTERFACTOR > 80

 F5: 100*(KEYS*(ISIZE+10)+(CARD-KEYS)*4) / (NLEAF*4096) > 50

 F6: 90*(4000/(ISIZE+10)**(NLEVELS-2))*4096/ (KEYS*(ISIZE+10)+(CARD-  

    KEYS)*4)<100

CREATOR  NAME CARD  LEAF  LVLS ISIZE  KEYS  F4  F5  F6 REORG

-------------------------------------------------------------------------------

Table: SYSIBM.SYSCHECKS

SYSIBM  IBM37            -     -     -     -      -    -    -    - ---

 

 

 위의 결과에서 REORG컬럼의 내용이 별표(*) 이면 그 테이블은 reorg가

 필요하고 하이폰(-)이면 정상이므로 reorg를 할 필요가 없습니다.

 

 

l       reorg 명령

db2 reorg table 테이블명 [INDEX 색인명] [USE 테이블공간명]

db2 reorg table tbl_name index idx_name use tempspace1 

 

  reorg명령은 해당 테이블의 데이터를 Physical 하게 재정렬하여

  조회의 Performance를 향상시킨다.

 

l       runstats 명령

db2  runstats on table 테이블명 [WITH DISTRIBUTION

        [AND [DETAILED] {INDEXES ALL | INDEX 색인명}] |

        {AND | FOR} [DETAILED] {INDEXES ALL | INDEX 색인명}]

        [SHRLEVEL {CHANGE | REFERENCE}]

db2  runstats  on  table  inst.albums  with  distribution

and  detailed  indexes all

 

 

 

  


DB2  Administration  Tools

 

 

l       Instance 작업

Instance란 데이터베이스가 운영되는 환경으로, 한 Instance

내에서는 유일한 데이터베이스 별명과  Authentication  type를

가져야 한다. 이러한 Instance는 여러 개 생성할 수 있으며

, 데이터베이스가 운영되는 환경을 복수로 가질수 있다.

Instance를 달리 표현하면 데이터베이스 관리자(dbm) 라고도

하는 데, 다른 데이터베이스 운영환경을 다루려면,

Instance 별로 데이터베이스 매니저를 시동해야 한다.

 

     root 로 login하여  다음의 디렉토리로 이동합니다.

    #  cd /usr/lpp/db2_05_00/instance

 

     Instance를 생성하기 위해  다음의 명령어를 사용합니다.

    #  db2icrt  -u  fenceid  dsna(instance 명)

   

    여기서 fenceid는 UDF(User Defined Function)의 owner로써  

    instance생성시 필요하다.

    Instance 의 삭제하는 명령은 다음과 같다.

    #  db2idrop  (instance 명)

 

     이미 생성된 Instance 의 리스트를 보려면

     다음의 명령어를 사용한다.

    #  db2ilist

 


 

l       권한

새로이 사용자를 추가 생성하여 Instance를 시동할 수 있게 하려면,

다음과 같이 그 사용자의 .profile을 변경 및 적용시키고,

dsna 사용자가 속한 cics group의 member이면 된다.

이러한 사용자들은 sysadm권한을 갖는 instance owner들로

데이터베이스 관리자 내의 어떠한 일도 수행할 수 있게 된다.

이보다 낮은 dbadm 권한을 데이터베이스별로 줄 수 있는데,

마찬가지로 새로운 사용자의 .profile을 변경및 적용시키고

grant 명령을 이용하여 권한을 부여한다.

물론 먼저  dbadm 권한을 부여할 데이터베이스에

먼저 연결되어 있어야 한다. 

.profile의 변경 및 grant 명령은 다음과 같다.

(여기서 dsna사용자는 cics group의 한  member라고 가정한다.)

#  vi  .profile

  .  /home/dsna/sqllib/db2profile

#  .  .profile

$  db2 connect  to  edi

$  db2 grant dbadm  on  database to (사용자 id  또는 group id)

 

 다음의  system table을  조회하여  해당 사용자가 어떤 권한을

 갖는지를  알 수 있다.

    $  db2  connect  to eddb  user  userid  using  password ;

    $  db2  “ select  *  from  syscat.dbauth “

    $  db2  “ select  *  from  syscat.tabauth “

    $  db2  “ select  *  from  syscat.colauth “

    $  db2  “ select  *  from  syscat.packageauth “

    $  db2  “ select  *  from  syscat.schemaauth “

  


      Ex) Public 권한 가진 사람

    $  db2  connect  to  eddb  user  userid  using  password

    $  db2 “ select * from syscat.dbauth where grantee='PUBLIC'“

 

 

PUBLIC는 해당 DB에 대해 connect, create table,

add new packages의 권한을 가지고 있다.

SYSIBM 의 grantor는  인증부여가   데이타베이스 관리자(DBM)에

의해 부여되고, 이 특별한 부여는 데이타베이스 생성 중에 만들

어진다.

NOFENCEAUTH 컬럼의 'N' 값은 PUBLIC가  NOT FENCED UDF

생성을 허용하지 않음을 나타낸다.

NOT FENCED Function은 함수Code와 데이터베이스에이젼트 코드

Firewall의 Protection없이 instance내에서 수행할 수 있다. 

Connect Authority를 갖는 어떤 User도 Fenced UDF를 정의할 수

있다. 위의 예에서처럼  Connect To PUBLIC는 Fenced UDF를 허용

하지 않는다.

데이터베이스 사용자가 가지고 있는 권한을 삭제하려면 다음과

같은 명령을 사용한다.

$  db2  revoke  connect, bindadd, createtab  on  database

  from  public

 


 

l       Data  Moving  Utility

 

ü       Export

 $  db2  export  to  educ.exp  of  ixf  messages  msg

  select  *  from  org

 

    table의 데이터 내용을  DEL,  IXF, WSF 형태로 반출할 수 있다.

    반출된 내용은 import 나  load  유틸리티를 사용하여 테이블로

    다시 반입할 수 있다.

  

   ü       Import

    일단 export 명령으로 반출된  파일이나 이미 DEL,ASC,IXF,WSF

    형태로 존재하는 파일은 LOAD 명령(WSF유형만 지원 안됨)이나

    IMPORT 명령으로DB의 TABLE로 데이타를 이동시킬 수 있다.

$  db2  import  from  educ.exp  of  ixf   messages

  msg.imp  create  into  userid.orgg  in  tablespace_name

 

     method  n ( column 명) 옵션을 부여할 수도 있습니다.

     그 옵션은 export된 table과 다른 column을  주는 경우의

     option 입니다.

 

    ü       Load

$  db2  load  from  educ.exp  of  ixf   messages

 msg.load  remote  file  educ.

replace  into  userid.orgg  for  exception  userid.exp11

 

 

     LOAD 는 IMPORT 보다  속도가 빠릅니다.

     왜냐하면, INDEX 가  생성되는 방법에 있어서,

     IMPORT는  IMPORT 되는 레코드 단위로 한번에 하나의 INDEX를

     만들지만, LOAD는 데이타의  LOAD 단계가 모두 끝난 이후에 BUILD

     단계에서 한꺼번에 INDEX를 만드는 특징을 갖고 있기 때문이다.

     특기할 만한 옵션은 다음과 같은 것들이 있다.

            method  (   L :   컬럼의 위치 (start,end)

                        N :   컬럼의 이름

                        P :   컬럼의 순서      )

            restart (   B :   index creation

                        D :   error 인 레코드 제거

                        N :   N 번째 레코드 부터 시작  )

 

  


l       테이블스페이스 및 테이블 생성,관리 및 삭제를 위한 명령

ü       테이블스페이스  및 테이블의 생성

  $  db2  connect  to  db_name  user  userid  using  password 

$  db2  create  regular  tablespace  dms04

 managed by database using

  (file '/dms/dms04'  1000) extentsize 2;

$  db2  create  table  test1

  (partno  integer,  subpart  integer)  in DMS04

 

  


ü       테이블스페이스  및 테이블의 상태

  $  db2  list  tablespaces 

  $  db2  list  tablespaces   show  detail  

  $  db2  list  tablespace  containers  for   tblspace_id  

$  db2  list  tablespace  containers  for   tblspace_id

   show   detail 

  $  db2  list   tables  for  all 

$  db2  "select  tbspace , definer , tbspaceid,  tbspacetype,

datatype  from syscat.tablespaces "   

$  db2  "select  tabname , tbspaceid,  tbspace,

index_tbspace ,  long_tbspace

        from  syscat.tables   where  tabname = 'SYSTABLES' "

$  du  -k

 

  


ü       테이블스페이스 및 테이블을 삭제

  $  db2  drop  tablespace  test1space

  $  db2  drop  table  userid.test1

 

  


l       DB Application 관리

DB  Application들의  상태를  보거나 강제로 DB Application을

kill하려고  할 때 다음의 명령을 이용한다.

  $  db2  list  applications  show  detail

  $  db2  force  application  ( agent-id );

                             --------

                           숫자 5자리

 

  


DB2 기타 유틸리티

 

 

l       Db2batch

SQL 조회에 대한 BMT용 유틸러티로써, 다음과  같이 사용합니다.

  $  db2batch  “SQL 조회문”

 

 


l       Db2look

DB2 통계 추출 툴로써, 다음과  같이 사용합니다.

  $  db2look  -d  db_name  -u  user_id   -p   -o   파일명

  


l       Db2exfmt

Explain 테이블 항목을 형식화한다.

데이타베이스명과 다른 규정화 정보가 제공되면,

이 툴은 정보에 대한 Explain 테이블을 조회하고 

그 결과를 형식화한다.(sqllib/misc에 위치)

 

l       Db2tbst

16진의 상태 값을 취하고("list tablespaces" 명령에서 제공됨)

그 상태를 해석한다.

  $  db2tbst 0x000c

        State = Quiesced Exclusive

               + Load Pending

 


l       Db2gov

적용업무에서 사용중인  데이타베이스가 어떤 것인지  알기 위해

주기적으로 DB2 스냅샷 모니터를 호출해서 어떤 적용업무가

Governor 구성 파일에서 지정한 한계를 초과하는 것으로 발견

되면, 이 적용업무가 종료되거나  (FORCEd) 또는 그 우선 순위가

변경된다.

 $  db2gov  start  <Database>  [nodenum <NodeNum>] 

                   <ConfigFile>  <LogFile>

 $  db2gov  stop  <Database>  [nodenum <NodeNum>]

 


 

   여기서 <ConfigFile>은 Governor configuration의 파일명을 말한다.

 

l       Lstaltsm

스냅샷 모니터에 대한 심각한 오류(alert)를 검색하기 위한

샘플 DDL(sqllib/samples/mon에 위치)

 

l       Sample.pv

스냅샷 모니터를 위한 샘플 성능 변수 프로파일

(sqllib/samples/mon에 위치)

 

l       Vesampl.ddl 

Visual Explain을 위한 스냅샷을 반출(export)하기 위한

샘플 DDL(sqllib/samples/ve에 위치)

 

l       Dynexpln

동적 SQL에 대하여 db2expln을 수행한다.

 $  dynexpln  [[-d <database>]  [-e <statement terminator>]

  [-f <input file>] [-g]  [-i]  [-t|

 -o  <output file> ]  [-s  <SQL statement>]

      [-u  <userid>  <password> ] ] [ -h | -?]

 


상기의 명령의 옵션은 다음과 같습니다.

 -e  <statement terminator>  =  SQL 구분자

(default 값은 no terminator)

 -g                         =  show optimizer plan graphs

 -h 또는 -?                  =  도움말

 -i                         =   show operator ID numbers

 -s <SQL statement>          =   보고자 하는 SQL 문

 -t                         =   terminal output desired

 

 


l       Db2ipxad

직접주소 지정모드를 사용하여 IPX/SPX 노드를 카탈로그화하는

원격클라이언트 시스템의 사용자를 위해 서버의 IPX/SPX**

인터네트워크주소를 리턴합니다.

 

l       Db2untag

sysadm이 "소유한" 데이타베이스의 컨테이너태그 정보를 삭제.

 

l       DB2/VM 과 관련된 사항

  ü       isql :

       ISQL을 사용하여 DB2/VM로부터의  액세스를 허용하기

위하여  더미(Dummy) 테이블을  작성합니다.

ü       sqldbsu :

     SQLDBSU를  사용하여  DB2/VM으로부터의  액세스를

     허용하기 위하여  더미 테이블을 작성한다.

 

l       저장 프로시듀어와 관련된 사항

  ü       storproc.ddl  :

      저장프로시듀어 pseudo_catalog DB2CLI.PROCEDURES

      생성하기 위한  샘플 DDL

ü       storproc.dml :

    저장 프로시듀어  pseudo_catalog DB2CLI.PROCEDURES

    로의 항목 삽입을  위한  샘플 DML

 

l       Rebind

기존의 bind 된 package를 다시 bind하고자 할 때 다음의 명령을

이용한다.

   $  db2  rebind package  inst.myapp(package 명)

 

 


 

DBM  CFG &  DB CFG  환경 변수

 

l       DBM CFG 환경 변수 수정

데이터베이스 Instance 환경을 구성합니다.

ü       query_heap_sz  :

       대부분 생략시 값으로 충분하고 ,  

       최소값으로는 aslheapsz의 최소 5배의 값으로 설정한다.

ü       rqrioblk :

       블로킹이 안된 커서의 경우 ,단일 sql 문으로

       전송되는 자료가 너무 커서 생략시 값으로 충분하지

       않은 경우가 있다.

ü       maxagents :  

       데이터베이스 연결시 마다  Agent가 부여되고,

       이 Agents의 최대수

ü       maxcagents   

       동시적인 데이터베이스 Coordinating Agent들의 최대 수

ü       tm_database  :

       데이터베이스 인스턴스가   트랜잭션 매니저 역할을

        경우에 그 제어 정보를 갖고 있는 데이터베이스 이름

ü       udf_mem_sz  : 

       Fenced UDF에 대한  공유 메모리 할당 크기

ü       numdb  :  동시에 활동 가능한 국지 데이터베이스의 수

ü       aslheapsz  :  Application 계층에서 사용할 Heap Size

 

l       DB CFG 환경 변수 변경

각 데이터베이스 별 환경을 구성합니다.

ü       maxappls   

       해당 데이터베이스에서 연결될 수 있는  클라이언트  

       업무의 개수를 나타낸다.

ü       avg_appls  :

       해당 데이터베이스에서 사용될 수 있는  클라이언트

       평균업무의 개수를 나타낸다.

 

제가 오라클을 DB2로 바꿀 때 고생했던 함수들 입니다. DB2 가 어찌나 예민하던지 조금만 자기 형식대로 안맞으면 에러 막내버리고 흑흑..

그냥 주로 썻던 함수들 정리해 봅니다.

 

1. NVL() => COALESCE()

2. DECODE() => CASE .. WHEN .. THEN .. END

 : 이함수는 converting 했을 때 열받았던 함수 이죠.. 다른 함수들은 앞에만 바꿔주면 되는데, 이함수는 일일이 when 절 then 절을 잘 구분해서 하나하나 써줘야 하니 ㅠㅠ 암튼 db2는 이런거는 좀 번거럽습니다.

3. ROWNUM => rowid

 : DB2 에서는 ROWNUM 이 없고 대체되는 것이 FETCH FIRST 1 ROW ONLY 라고 나오는데 아무리 써봐도 이거때메 에러 나더라구요~ 그래서 찾은게

FROM 절에 (SELECT ROWNUM() OVER() AS rowid, column1, column2, ... FROM 원래 테이블명 ) as temp 이렇게 써야 하더라구요~

예시) select rowid,b  from (select rownumber() over() as rowid, b from test) temp;

4. SYSDATE와 DUAL => CURRENT TIME 과 SYSIBM.SYSDUMMY1

 : 오라클에서의 시간알아볼때나 테이블이 없는경우로 테스트로 쓸 때 DUAL 을 쓰는데요~ DB2에서는 SYSIBM.SYSDUMMY1 으로 쓰죠~

 * SELECT SYSDATE FROM DUAL; => SELECT CURRENT TIME FROM SYSIBM.SYSDUMMY1; 으로 바뀔 수 있죠~

5. TO_DATE()

 : 그냥 DATE로 바꾸는 함수는 DB2에서 제공하는 함수로는 DATE() 라는 함수가 있는데요, 오라클처럼 쓰고 싶으면 UDF를 만들어서 사용하면 비슷하게 사용할 수 있습니다.(참조 : UDF첨부파일) 그런데 DATE는 TIMESTAMP를 많이 사용하는데요, TIMESTAMP_ISO(DATE | TIME | TIMESTAMP | VARCHAR) 로 TIMESTAMP로 바꿀 수 있습니다.

6. TO_CHAR()

 : CHAR() 라는 함수로 CHAR로 바꿀 수 있으며, 오라클 처럼 쓰려면 참조된 UDF로 추가하여 TO_CHAR를 쓸 수 있습니다.

7. UPPER() => UCASE()

8. 추가해야할 함수들[UDF함수 추가]

 1) LPAD()

 2) MONTHS_BETWEEN()

 3) LASTDAY()

 4) ADD_MONTHS()

9. 이건 함수 아니지만, OUTER JOIN 의 (+)은 안먹으니 LEFT OUTER JOIN, RIGHT OUTER JOIN 으로 다 바꿔야 합니다.

이 함수들은 주로 썼던 함수들이고요, 이거보다 더 많은 정보를 원하시는 분은 http://www.redbooks.ibm.com/abstracts/SG247048.html?Open 에서 PDF 파일을 받으셔서 참조하세요~

또한 오라클에서는 제공되나 DB2에서는 제공되지 않거나 좀 다르게 제공되는 함수들은 첨부파일로 올리니 참고하셈~



출처 : 뱌뱌 공부방 | 뱌뱌

 

 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)