40
IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide DB2 UDB Guide for Experienced Oracle User for Experienced Oracle User

IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

Embed Size (px)

Citation preview

Page 1: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

IBM Software Group

© 2004 IBM Corporation

DB2 Post Support Team

DB2 UDB GuideDB2 UDB Guidefor Experienced Oracle User for Experienced Oracle User

Page 2: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

2

C O N T E N T S

용어 비교명령 처리기기본 아키텍처프로세스 모델메모리 모델관련 파일관련 디렉토리메타 데이터병렬 아키텍처데이터 유형 비교함수 비교시스템 레지스터리저장 프로시저사용자 정의 함수트리거변수 선언 및 할당Flow Control 문Dynamic SQL컨디션 핸들링

사용자 정의 오류 메시지 처리디버깅용 파일 출력커서 처리커서 특성 확인하기CollectionBulk CollectSP 에서 Result Set 반환하기다른 SP 로 Result Set 반환하기Local Function계층적 쿼리데이터 유형 자동 변환Outer JoinDECODE 문반환되는 행의 개수 제한값을 반환하는 INSERT, UPDATE, DELETE 문Dummy TableDate, Time 연산집합 연산자OCI 와 CLI 비교

Page 3: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

3

용어 비교

Data dictionary, Datafiles, Data Blocks 등의 용어가 사용됩니다 . System Catalog, Containers, Pages 등의 용어가 사용됩니다 .

System Catalog, Containers, Pages 등의 용어가 사용됩니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 4: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

4

명령 처리기

DB2 CLP 를 이용하여 , command 와 SQL, 오류 message 등을 확인할 수 있습니다 .

DB2 CLP 를 이용하여 , command 와 SQL, 오류 message 등을 확인할 수 있습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

sqlplus 를 이용합니다 .sqlplus 를 이용합니다 .

Page 5: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

5

기본 아키텍처

ORACLEORACLE

DB2 UDBDB2 UDB

Page 6: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

6

프로세스 모델

ORACLEORACLE

DB2 UDBDB2 UDB

Page 7: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

7

메모리 모델

ORACLEORACLE

DB2 UDBDB2 UDB

Page 8: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

8

관련 파일

ORACLEORACLE

DB2 UDBDB2 UDB

Page 9: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

9

관련 디렉토리

ORACLEORACLE

DB2 UDBDB2 UDB

Page 10: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

10

메타 데이터

CHAR, VARCHAR, SMALLINT, INT, BIGINT, DEC, FLOAT, DATE, TIME, TIMESTAMP, LOB 등이 있습니다 .

CHAR, VARCHAR, SMALLINT, INT, BIGINT, DEC, FLOAT, DATE, TIME, TIMESTAMP, LOB 등이 있습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

CHAR, VARCHAR2, LONG, NUMBER, DATE, LOB 등이 있습니다 .CHAR, VARCHAR2, LONG, NUMBER, DATE, LOB 등이 있습니다 .

SYSCATSYSCAT

SYSSTATSYSSTAT

SYSIBMSYSIBM

Page 11: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

11

병렬 아키텍처

Shared Nothing 구조를 사용하므로 확장성이 좋습니다 .Shared Nothing 구조를 사용하므로 확장성이 좋습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Shred Disk 구조를 사용합니다 .Shred Disk 구조를 사용합니다 .

DPFDPFRAC

RAC

Page 12: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

12

데이터 유형 비교

CHAR, VARCHAR, SMALLINT, INT, BIGINT, DEC, FLOAT, DATE, TIME, TIMESTAMP, LOB 등이 있습니다 .

CHAR, VARCHAR, SMALLINT, INT, BIGINT, DEC, FLOAT, DATE, TIME, TIMESTAMP, LOB 등이 있습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

CHAR, VARCHAR2, LONG, NUMBER, DATE, LOB 등이 있습니다 .CHAR, VARCHAR2, LONG, NUMBER, DATE, LOB 등이 있습니다 .

Page 13: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

13

함수 비교

DB2 가 지원하는 함수는 다음과 같습니다 .DB2 가 지원하는 함수는 다음과 같습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

ABSACOSASCIIASINATANATAN2ATANHAVGBIGINTBLOBCEILCHARCHRCLOBCONCATCORRCOSCOSHCOTCOUNTCOUNT_BIGCOVARDATEDAYDAYNAMEDAYOFWEEKDAYOFWEEK_ISODAYOFYEARDAYSDB_PARTITIONSDBCLOBDBPARTITIONNUMDEC

ABSACOSASCIIASINATANATAN2ATANHAVGBIGINTBLOBCEILCHARCHRCLOBCONCATCORRCOSCOSHCOTCOUNTCOUNT_BIGCOVARDATEDAYDAYNAMEDAYOFWEEKDAYOFWEEK_ISODAYOFYEARDAYSDB_PARTITIONSDBCLOBDBPARTITIONNUMDEC

HEALTH_CONT_HI_HISHEALTH_CONT_INFOHEALTH_DB_HIHEALTH_DB_HI_HISHEALTH_DB_INFOHEALTH_DBM_HIHEALTH_DBM_HI_HISHEALTH_DBM_INFOHEALTH_TBS_HIHEALTH_TBS_HI_HISHEALTH_TBS_INFOHEXHOURIDENTITY_VAL_LOCALINSERTINTJULIAN_DAYLCASELOWERLEFTLENGTHLNLOCATELOGLOG10LONG_VARCHARLONG_VARGRAPHICLTRIMMAXMICROSECONDMIDNIGHT_SECONDSMINMINUTE

HEALTH_CONT_HI_HISHEALTH_CONT_INFOHEALTH_DB_HIHEALTH_DB_HI_HISHEALTH_DB_INFOHEALTH_DBM_HIHEALTH_DBM_HI_HISHEALTH_DBM_INFOHEALTH_TBS_HIHEALTH_TBS_HI_HISHEALTH_TBS_INFOHEXHOURIDENTITY_VAL_LOCALINSERTINTJULIAN_DAYLCASELOWERLEFTLENGTHLNLOCATELOGLOG10LONG_VARCHARLONG_VARGRAPHICLTRIMMAXMICROSECONDMIDNIGHT_SECONDSMINMINUTE

DECRYPT_BINDECRYPT_CHARDEGREESDEREFDIFFERENCEDIGITSDLCOMMENTDLLINKTYPEDLNEWCOPYDLPREVIOUSCOPYDLREPLACECONTENTDLURLCOMPLETEDLURLCOMPLETEONLYDLURLCOMPLETEWRITEDLURLPATHDLURLPATHONLYDLURLPATHWRITEDLURLSCHEMEDLURLSERVERDLVALUEDOUBLEENCRYPTEVENT_MON_STATEEXPFLOATFLOORGENERATE_UNIQUEGET_ROUTINE_SARGETHINTGRAPHICGROUPINGHASHEDVALUEHEALTH_CONT_HI

DECRYPT_BINDECRYPT_CHARDEGREESDEREFDIFFERENCEDIGITSDLCOMMENTDLLINKTYPEDLNEWCOPYDLPREVIOUSCOPYDLREPLACECONTENTDLURLCOMPLETEDLURLCOMPLETEONLYDLURLCOMPLETEWRITEDLURLPATHDLURLPATHONLYDLURLPATHWRITEDLURLSCHEMEDLURLSERVERDLVALUEDOUBLEENCRYPTEVENT_MON_STATEEXPFLOATFLOORGENERATE_UNIQUEGET_ROUTINE_SARGETHINTGRAPHICGROUPINGHASHEDVALUEHEALTH_CONT_HI

MODMONTHMONTHNAMEMQPUBLISHMQREADMQREADALLMQREADALLCLOBMQREADCLOBMQRECEIVEMQRECEIVEALLMQRECEIVEALLCLOBMQRECEIVECLOBMQSENDMQSUBSCRIBEMQUNSUBSCRIBEMULTIPLY_ALTNULLIFPOSSTRPOWERPUT_ROUTINE_SARQUARTERRADIANSRAISE_ERRORRANDREALREC2XMLREGR_AVGXREGR_AVGYREGR_COUNTREGR_ICPTREGR_R2REGR_SLOPEREBIND_ROUTINE_PACKAGE

MODMONTHMONTHNAMEMQPUBLISHMQREADMQREADALLMQREADALLCLOBMQREADCLOBMQRECEIVEMQRECEIVEALLMQRECEIVEALLCLOBMQRECEIVECLOBMQSENDMQSUBSCRIBEMQUNSUBSCRIBEMULTIPLY_ALTNULLIFPOSSTRPOWERPUT_ROUTINE_SARQUARTERRADIANSRAISE_ERRORRANDREALREC2XMLREGR_AVGXREGR_AVGYREGR_COUNTREGR_ICPTREGR_R2REGR_SLOPEREBIND_ROUTINE_PACKAGE

REGR_SXXREGR_SXYREGR_SYYREPEATREPLACERIGHTROUNDRTRIMSECONDSIGNSINSINHSMALLINTSNAPSHOT_AGENTSNAPSHOT_APPLSNAPSHOT_APPL_INFOSNAPSHOT_BPSNAPSHOT_CONTAINERSNAPSHOT_DATABASESNAPSHOT_DBMSNAPSHOT_DYN_SQLSNAPSHOT_FCMSNAPSHOT_FCMNODESNAPSHOT_FILEWSNAPSHOT_LOCKSNAPSHOT_LOCKWAITSNAPSHOT_QUIESCERSSNAPSHOT_RANGESSNAPSHOT_STATEMENTSNAPSHOT_TBS_CFG

REGR_SXXREGR_SXYREGR_SYYREPEATREPLACERIGHTROUNDRTRIMSECONDSIGNSINSINHSMALLINTSNAPSHOT_AGENTSNAPSHOT_APPLSNAPSHOT_APPL_INFOSNAPSHOT_BPSNAPSHOT_CONTAINERSNAPSHOT_DATABASESNAPSHOT_DBMSNAPSHOT_DYN_SQLSNAPSHOT_FCMSNAPSHOT_FCMNODESNAPSHOT_FILEWSNAPSHOT_LOCKSNAPSHOT_LOCKWAITSNAPSHOT_QUIESCERSSNAPSHOT_RANGESSNAPSHOT_STATEMENTSNAPSHOT_TBS_CFG

SOUNDEXSPACESQLCACHE_SNAPSHOTSQRTSTDDEVSUBSTRSUMTABLE_NAMETABLE_SCHEMATANTANHTIMETIMESTAMPTIMESTAMP_FORMATTIMESTAMP_ISOTIMESTAMPDIFFTO_CHARTO_DATETRANSLATETRUNCATE 또는 TRUNCTYPE_ID TYPE_NAME TYPE_SCHEMA UCASEUCASE 또는 UPPERVALUE VARCHARVARCHAR_FORMATVARGRAPHICVARWEEKWEEK_ISOYEAR

SOUNDEXSPACESQLCACHE_SNAPSHOTSQRTSTDDEVSUBSTRSUMTABLE_NAMETABLE_SCHEMATANTANHTIMETIMESTAMPTIMESTAMP_FORMATTIMESTAMP_ISOTIMESTAMPDIFFTO_CHARTO_DATETRANSLATETRUNCATE 또는 TRUNCTYPE_ID TYPE_NAME TYPE_SCHEMA UCASEUCASE 또는 UPPERVALUE VARCHARVARCHAR_FORMATVARGRAPHICVARWEEKWEEK_ISOYEAR

Page 14: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

14

시스템 레지스터리

Special Register Variables 를 이용하여 시스템에 관련된 여러가지 값을 확인할 수 있습니다 .

Special Register Variables 를 이용하여 시스템에 관련된 여러가지 값을 확인할 수 있습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 15: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

15

저장 프로시저

CREATE OR REPLACE PROCEDURE 문을 이용하여 생성합니다 .CREATE PROCEDURE 문을 이용하여 저장 프로시저를 생성합니다 . REPLACE 옵션은 지원하지 않습니다 .

CREATE PROCEDURE 문을 이용하여 저장 프로시저를 생성합니다 . REPLACE 옵션은 지원하지 않습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 16: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

16

사용자 정의 함수

CREATE OR REPLACE FUNCTION 문을 이용하여 생성합니다 .CREATE FUNCTION 문을 이용하여 사용자 정의 함수를 생성합니다 . REPLACE 옵션은 지원하지 않습니다 .

CREATE FUNCTION 문을 이용하여 사용자 정의 함수를 생성합니다 . REPLACE 옵션은 지원하지 않습니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 17: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

17

트리거

CREATE OR REPLACE TRIGGER 문을 이용합니다 .CREATE TRIGGER 문을 이용하여 트리거를 생성합니다 . INSERT, UPDATE, DELETE 트리거는 개별적으로 생성됩니다 .

CREATE TRIGGER 문을 이용하여 트리거를 생성합니다 . INSERT, UPDATE, DELETE 트리거는 개별적으로 생성됩니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 18: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

18

변수 선언 및 할당

변수 이름 , 유형 , 기본값을 지정합니다 .DECLARE 문을 이용하여 변수 , 유형 , 기본값을 지정합니다 . SET 문을 이용하여 값을 할당합니다 .

DECLARE 문을 이용하여 변수 , 유형 , 기본값을 지정합니다 . SET 문을 이용하여 값을 할당합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 19: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

19

Flow Contol 문

IF, LOOP, WHILE, FOR 문 등을 이용합니다 .IF, LOOP, WHILE, REPEAT, FOR 문 등을 이용합니다 .

IF, LOOP, WHILE, REPEAT, FOR 문 등을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 20: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

20

Dynamic SQL

DBMS_SQL 팩키지 또는 NATIVE DYNAMIC SQL 를 이용합니다 .NATIVE DYNAMIC SQL 을 이용합니다 .

NATIVE DYNAMIC SQL 을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 21: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

21

컨디션 핸들링

EXCEPTION ~ WHEN 문을 이용합니다 .DECLARE ~ CONDITION 과 HANDLER 문을 이용합니다 .

DECLARE ~ CONDITION 과 HANDLER 문을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 22: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

22

사용자 정의 오류 메시지 처리

RAISE_APPLICATION_ERROR 를 이용하여 사용자가 정의한 오류 메시지를 처리합니다 . RAISE_ERROR, SIGNAL, GET DIAGNOSTICS 문을 이용하여

처리합니다 .

RAISE_ERROR, SIGNAL, GET DIAGNOSTICS 문을 이용하여 처리합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 23: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

23

디버깅용 파일 출력

dbms_out.put.put_line 함수를 이용합니다 .PUT_LINE 사용자 정의 함수를 이용합니다 .

PUT_LINE 사용자 정의 함수를 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

CREATE PROCEDURE TESTCASE()LANGUAGE SQLBEGIN NOT ATOMIC DECLARE V_DEPTNO SMALLINT; DECLARE V_DEPTNAME VARCHAR(20); DECLARE V_NUM SMALLINT DEFAULT 0; DECLARE V_MSG1 VARCHAR(4000); DECLARE V_MSG2 VARCHAR(1); SET V_NUM=2000; SET V_MSG1='debugging start'; VALUES(PUT_LINE(V_NUM,V_MSG1)) INTO V_MSG2; VALUES(PUT_LINE(SMALLINT(2),'this is no2')) INTO V_MSG2; VALUES(PUT_LINE(3)) INTO V_MSG2; VALUES(PUT_LINE('##number4##')) INTO V_MSG2;

SET V_NUM = 0; FOR V_C1_REC AS C1 CURSOR FOR SELECT DEPTNUMB, DEPTNAME FROM ORG; DO SET V_DEPTNO = v_C1_REC.DEPTNUMB; SET V_DEPTNAME = v_C1_REC.DEPTNAME; SET V_NUM = V_NUM + 1; SET V_MSG1 ='DEPTNO=' || CHAR(V_DEPTNO)||','||V_DEPTNAME; VALUES(PUT_LINE(V_NUM,V_MSG1)) INTO V_MSG2; END FOR; VALUES(PUT_LINE(32000,'end of the program')) INTO V_MSG2; END @

Page 24: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

24

커서 처리

CURSOR~IS 문을 이용하여 선언합니다 .DECLARE ~ CURSOR 문을 이용하여 선언합니다 . OPEN, FETCH, CLOSE, WHERE CURRENT OF 구문은 유사합니다 .

DECLARE ~ CURSOR 문을 이용하여 선언합니다 . OPEN, FETCH, CLOSE, WHERE CURRENT OF 구문은 유사합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 25: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

25

커서 특성 확인하기

%ISOPEN, %NOTFOUND, %FOUND, %ROWCOUNT 등을 이용하여 커서의 특성을 확인합니다 . SQLCODE, SQLSTATE, GET DIAGNOSTICS 문을 이용합니다 .

SQLCODE, SQLSTATE, GET DIAGNOSTICS 문을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 26: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

26

Collection

nested table 과 varrays 를 이용합니다 .global temporary table 을 이용합니다 . 한 세션에서만 사용되며 , 세션 종료시 자동적으로 소멸됩니다 .

global temporary table 을 이용합니다 . 한 세션에서만 사용되며 , 세션 종료시 자동적으로 소멸됩니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 27: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

27

Bulk Collect

BULK COLLECT 절을 이용하여 한 개 이상의 행을 FETCH 합니다 . TEMPORARY TABLE 과 SELECT ~ INSERT 문을 이용합니다 .

TEMPORARY TABLE 과 SELECT ~ INSERT 문을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 28: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

28

SP 에서 Result Set 반환하기

반환 유형이 REF 인 커서를 이용하여 result set 을 반환합니다 . DYNAMIC RESULT SET 옵션을 이용하여 result set 을 반환합니다 .

DYNAMIC RESULT SET 옵션을 이용하여 result set 을 반환합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 29: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

29

다른 SP 로 Result Set 반환하기

nested table 을 이용하여 result set 을 다른 SP 로 반환합니다 . 반환된 result set 은 ASSOCIATE, ALLOCATE 문을 이용하여 처리합니다 .

반환된 result set 은 ASSOCIATE, ALLOCATE 문을 이용하여 처리합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 30: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

30

Local Function

특정 SP 내에서만 참조되는 함수를 local function 이라고 합니다 . DB2 에서는 Local Function 이 없으므로 UDF 를 사용하기 전에 SP 외부에서 미리 생성해 두어야 합니다 .

DB2 에서는 Local Function 이 없으므로 UDF 를 사용하기 전에 SP 외부에서 미리 생성해 두어야 합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 31: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

31

계층적 쿼리

CONNECT BY~START WITH 절을 이용합니다 .SELECT 문에서 WITH 로 정의되는 COMMON TABLE 을 이용합니다 .

SELECT 문에서 WITH 로 정의되는 COMMON TABLE 을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 32: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

32

데이터 유형 자동 변환

필요시 자동적으로 데이터 유형의 변환이 발생합니다 .명시적인 데이터 타입이 맞지 않을 경우에는 조작을 허용하지 않습니다 . 필요시 , 명시적인 데이터 유형 변환 함수를 사용합니다 .

명시적인 데이터 타입이 맞지 않을 경우에는 조작을 허용하지 않습니다 . 필요시 , 명시적인 데이터 유형 변환 함수를 사용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 33: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

33

Outer Join

플러스 (+) 기호를 이용하여 outer join 의 기준을 표시합니다 . left, right, full outer join 구문을 이용합니다 .

left, right, full outer join 구문을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 34: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

34

DECODE 문

여러가지 조건문을 판별할 때 , DECODE 문을 사용합니다 .CASE 문을 이용합니다 .

CASE 문을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 35: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

35

반환되는 행의 개수 제한

ROWNUM 을 이용하여 반환되는 행의 개수를 제한합니다 . FETCH FIRST n ROWS ONLY 구문이나 ROW_NUMBER 함수를 이용합니다 .

FETCH FIRST n ROWS ONLY 구문이나 ROW_NUMBER 함수를 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 36: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

36

값을 반환하는 INSERT, UPDATE, DELETE문

RETURNING INTO 구문을 이용합니다 .SELECT INTO 과 FROM NEW TABLE 구문을 이용합니다 .

SELECT INTO 과 FROM NEW TABLE 구문을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 37: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

37

Dummy Table

DUAL 을 이용합니다 .SYSIBM.SYSDUMMY1 을 이용합니다 .

SYSIBM.SYSDUMMY1 을 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 38: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

38

Date, Time 연산

DATE 유형을 이용하여 , 날짜 , 시간 , 시간 소인을 처리합니다 .DATE, TIME, TIMESTAMP 유형을 이용하여 , 날짜 , 시간 , 시간 소인을 처리합니다 .

DATE, TIME, TIMESTAMP 유형을 이용하여 , 날짜 , 시간 , 시간 소인을 처리합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 39: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

39

집합 연산자

UNION, UNION ALL, MINUS, INTERSECT 를 지원합니다 .UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL 을 지원합니다 .

UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL 을 지원합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB

Page 40: IBM Software Group © 2004 IBM Corporation DB2 Post Support Team DB2 UDB Guide for Experienced Oracle User

DB2 Guide for Experienced Oracle Users

© 2004 IBM Corporation

DB2 UDB

40

OCI 와 CLI 비교

Oracle Call Interface 를 사용하여 C 에서 데이터베이스를 액세스합니다 . Call Level Interface 를 이용합니다 .

Call Level Interface 를 이용합니다 .

ORACLEORACLE

DB2 UDBDB2 UDB