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

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

Dec 14, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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