[본문스크랩] PL/SQL (5) - 함수

오라클 | 2007. 12. 21. 15:27
Posted by 시반

 ###################################################################################################

#   source site : blog.naver.com/tangamjaelt

#   master : 강용운

#   email : tangamjaelt@korea.com

#   last release : 2007.05.18

###################################################################################################

 

함수를 사용하는 이유

1. 코딩량을 줄일 수 있다.

2. 함수를 이용하여 모듈 단위로 접근할 수 있다.

3. 반복해서 재사용 할 수 있다.

 

 

함수 정의

********************************************************************************************************************

FUNCTION 함수명 [(파라미터 {IN|OUT|IN OUT})]

            RETURN 반환데이터형 

IS|AS

            선언문

BEGIN

            실행문

(EXCEPTION)

            예외처리문

END 함수명;

/

********************************************************************************************************************

파라미터 IN/OUT : 함수 내부와 외부로 파라미터 전달

RETURN : 반환되는 데이터 형. 하나 이상의 RETURN문을 가질 수 있지만 오직 하나만 실행된다. 적어도 하나의 RETURN문은 존재.

IS | AS : 함수에 대한 변수를 지역적으로 설정.

BEGIN : 함수 안에 들어있는 문장의 실행을 시작.

EXCEPTION : 선택사항. 오류 발생시 적당한 처리를 할 수 있다.

END : 함수의 끝을 나타냄.

 

 

파라미터 정의하기

- 파라미터는 블럭에서 함수로 전달할 수 있는 값이다.

- 함수는 이 파라미터 값을 받아 일을 수행하고 결과를 반환하거나 반환하지 않을 수 있다.

- actual parameter : 실제 메모리에 저장된 파라미터 값

- formal parameter : actual parameter 에 대한 포인터

 

파라미터명 [MODE] 파라미터데이터형 [:= 값 | DEFAULT 값]

ex)  v_stuid  VARCHAR2

 

- MODE : 들어오는 파라미터를 제어하는 문장

      ① IN [NOCOPY] : 읽기전용 : 파라미터가 읽기 전용으로 되고, 값이 변경되는 것을 완전히 막을 수 있다.

      ② OUT [NOCOPY] : 쓰기전용 : 전달된 파라미터 값을 무시하고 함수 내에서 파라미터 값을 할당한다.

      ③ IN OUT [NOCOPY] : 읽기 또는 쓰기 : 파파미터를 제어. 함수를 종료할 때 함수내에서 작성된 값이 파라미터 값으로 할당된다.

- NOCOPY : 파라미터 값이 아주 큰 경우, 컴파일러에게 파라미터를 값이 아닌 참조(포인터)로 전달하라고 요청하는 힌트

 

 

파라미터에 값 할당하기

- 파라미터에 값을 할당하려면, := 또는 DEFAULT 를 사용한다.

- DEFAULT 를 사용하면 값을 지정하지 않으면 정해진 기본값으로 할당된다.

ex) 

v_txn_count NUMBER := 10

v_stuid VARCHAR2 DEFAULT '-'

 

 

반환 데이터형

- 함수를 사용할 경우 반드시 반환되는 데이터의 데이텨형을 정의하여야 한다.

 

 

예외 (Exception)

- 함수나 프로시저 처리 중 오류가 발생하였을 경우 적절한 처리를 위해 작성한다.

- 구문

********************************************************************************************************************

EXCEPTION

      WHEN OTHERS THEN

          ...

********************************************************************************************************************

 

 

스토어드 함수 (Stored Function)

- Stored Function 이란 PL/SQL 코드에서 호출할 수 있도록 데이터베이스에 저장된 함수.

- 일반 함수와 달리 stored 함수를 정의할 경우, CREATE [OR REPLACE] 를 사용하여 정의한다.

- 구문

********************************************************************************************************************

CREATE [OR REPLACE] FUNCTION 함수명 [ (파라미터 {IN | OUT | INOUT}) ]

         RETURN 반환데이터형

IS | AS

          선언문

BEGIN

          실행문

(EXCEPTION)

          에외처리문

END 함수명;

********************************************************************************************************************

 

 

[예제1] 파라미터가 없는 스토어드 함수 작성과 사용

********************************************************************************************************************

CREATE OR REPLACE FUNCTION mypi
     RETURN NUMBER
IS
BEGIN
     NULL;
     RETURN 3.14;
END mypi;
/

********************************************************************************************************************

 

 

 

SQL> SET SERVEROUTPUT ON;

********************************************************************************************************************

BEGIN

      DBMS_OUTPUT.PUT_LINE('mypi value is ' || mypi);

END;

/

********************************************************************************************************************

 

 

 

디버깅 (오류확인)

- 함수를 작성하다 Compile 에러가 발생하면 INVALID 상태가 되어 사용할 수 없다.

- show errors 명령으로 에러를 확인한다.

- 표시되는 숫자는 'LINE/COLUMN' 형식이며, 6/2 이라고 하면 6번째 줄에서 2번째 항목에 에러가 있다는 뜻.

 

[본문스크랩] PL/SQL (2) - 데이터형

오라클 | 2007. 12. 21. 15:26
Posted by 시반

###################################################################################################

#   source site : blog.naver.com/tangamjaelt

#   master : 강용운

#   email : tangamjaelt@korea.com

#   last release : 2007.05.01

###################################################################################################

 

데이터형 (datatype)

- PL/SQL 에서 블럭은 프로그래밍의 기본 단위이다.

- 블럭은 프로그램 코드와 변수 선언문을 둘 다 갖고 있다.

 

스칼라 변수

VARCHAR2

가변 길이 문자 스트링

CHAR

고정 길이 문자 스트링

NUMBER

고정 소수점 또는 부동 소수점 숫자

DATE

날짜

BOOLEAN

TRUE/FALSE

 

변수 명명 규칙

① 변수이름은 문자,$,_,# 으로 구성된다.

② 변수이름은 반드시 문자로 시작한다.

③ 변수이름은 최대 30자이다.

④ 변수이름은 대소문자를 구분하지 않는다.

⑤ 알아보기쉽게 쓴다.  (empyearsal → emp_year_sal → Emp_Year_Sal)

⑥ 변수, 함수, 프로시저 이름등을 쉽게 구분하기 위해 예약어는 대문자만 사용하는 경우도 있다.

 

변수선언

student_id VARCHAR(16);

student_name VARCHAR2(10000);

 

변수에 값 할당

student_id := 'kangyw';

student_name := 'Kang Yong Woon';

 

CHAR 와 VARCHAR 차이점

- CHAR 는 고정된 길이의 데이터를 저장. 빈공간은 공백으로 채워짐. (ex. 학번,사번,주민번호 등 정해진 길이)

   스트링 비교를 할 경우, 공백도 1byte로 계산됨.

- VARCHAR 는 정해지지 않은 길이의 데이터를 저장하는데 사용됨.

 

 

[예제1] CHAR는 VARCHAR의 차이점.

 

$ vi /export/home/oracle/plsql/test_35p.sql

 

********************************************************************************************************************

DECLARE

         student_id CHAR(20);

         student_name VARCHAR(20);

BEGIN

         student_id := 'kangyw';

         student_name := 'kangyw';

 

         IF

                  student_id = student_name;

         THEN

                  DBMS_OUTPUT.PUT_LINE('Same');

         ELSE

                  DBMS_OUTPUT.PUT_LINE('Not Same');

         END IF;

END;

/

********************************************************************************************************************

 

SQL> SET SERVEROUTPUT ON

SQL> @/export/home/oracle/plsql/test_35p

 

 

- CHAR 와 VARCHAR 모두 20 byte를 할당 받지만,

- CHAR는 kangyw 을 사용하고 남은 14byte를 공백으로 채우고, VARCHAR 는 6 byte만 사용하고 14 byte는 사용하지 않는다.

- 공백을 무시하고 비교하기 위해서는 rtrim 함수를 사용한다.

 

 

[예제2] RTRIM 을 사용하여 문자 비교하기 (우측 공백 제거 함수)

 

$ vi /export/home/oracle/plsql/test_36p.sql

 

********************************************************************************************************************

DECLARE

         student_id CHAR(20);

         student_name VARCHAR(20);

BEGIN

         student_id := 'kangyw';

         student_name := 'kangyw';

 

         IF

                  RTRIM(student_id) = student_name;

         THEN

                  DBMS_OUTPUT.PUT_LINE('Same');

         ELSE

                  DBMS_OUTPUT.PUT_LINE('Not Same');

         END IF;

END;

/

********************************************************************************************************************

 

 

- 공백을 제거하니 Same 이라는 결과가 나온다.

 

 

NUMBER

- 고정 소수점과 부동 소수점 숫자를 정의

- 범위 : 1.0E-123 ~ 9.99E125 까지

- 정밀도 : 몇 자리를 사용할 것인지 표시

- 스케일 : 소수점의 위치를 표시

- 형식 : 변수명 NUMBER [(정밀도[,스케일])]

            예) NUMBER(4,2) ▶ 4자리 수이고 소수점은 오른쪽 2번째에 온다. 

                                         73.127 을 입력하면 반올림이 되어 73.13 이 나온다.

            예) NUMBER(3) ▶ 기본스케일 0. 정수로 표시되고, 소수 첫째자리에서 반올림 된다. 

                                       345.1 을 입력하면 345 로 표시된다. -345.12 를 입력하면 -345 로 표시된다.

            예) NUMBER(5,-2) ▶ 스케일이 음수로 표시되면 정수쪽으로 반올림이 발생한다.

                                           10345 을 입력하면 100단위로 끊어져, 10300 이 나온다. 주식 100주 단위로 표시할 때 사용.

 

[예제3] NUMBER

 

********************************************************************************************************************

DECLARE

        number1 NUMBER(4,2);

        number2 NUMBER(3);

        number3 NUMBER(5,-2);

BEGIN

        number1 := 73.127;

        number2 := 345.1;

        number3 := 10345;

 

        DBMS_OUTPUT.PUT_LINE(number1);

        DBMS_OUTPUT.PUT_LINE(number2);

        DBMS_OUTPUT.PUT_LINE(number3);

END;

/

********************************************************************************************************************

 

 

 

DATE

- 날짜와 시간값을 저장

- 기본적으로 날짜,시간이 항상 포함된다.

- 시간을 지정하지 않으면 자정으로 표시. (am 12.:00:00)

- 범위 : BC 471년 1월 1일 ~ AD 4712년 12월 31일 까지

- 시간을 빼고 날짜만 비교하려면 TRUNC 함수를 사용한다.

 

[예제4] DATE

 

********************************************************************************************************************

DECLARE

        birthday DATE;

BEGIN

        birthday := TO_DATE('28-DEC-1982', 'DD-MON-YYYY');

        DBMS_OUTPUT.PUT_LINE(birthday);

END;

/

********************************************************************************************************************

 

 

 

 

[본문스크랩] PL/SQL (1) - 개념과 예제

오라클 | 2007. 12. 21. 15:15
Posted by 시반

###################################################################################################

#   source site : blog.naver.com/tangamjaelt

#   master : 강용운

#   email : tangamjaelt@korea.com

#   last release : 2007.06.11

###################################################################################################

 

PL/SQL 이란?

- Procedural Language / Sturctured Query Language

- SQL에 프로그래밍 언어 설계 기능을 절차적으로 추가한 것

- 오라클사가 데이터베이스에서 SQL에 대해 절차적 로직을 실행하는 방법을 제공하기 위해 개발한 절차적 언어

- 데이터 캡슐화, 예외 처리, 정보 숨김, 객체 지향 등의 현대 S/W 공학 기능 제공

- SQL문을 블록 구조 및 프로시저 단위 코드에 포함시킬 수 있는 강력한 트랜잭션 처리 언어

 

PL/SQL 처리과정

- 오라클 선행 컴파일러에서 PL/SQL 블록(코드)를 제출하면 Oracle Server 내의 PL/SQL 엔진이 이를 처리한다.

- PL/SQL 엔진은 블록 내의 SQL문을 분리하여 하나씩 SQL문 실행자로 전송한다.

- PL/SQL 코드는 Oracle Server 에 저장할 수 있으며, 이름 앞에 Stored를 붙여 부른다. (Stored Procedure)

- Oracle Developer 와 같은 오라클 툴에는 Oracle Server의 엔진과는 별도로 자체 PL/SQL 엔진이 존재한다.

 

실습에 필요한 권한

- CREATE PROCEDURE

- CREATE SESSION

- CREATE TABLE

- CREATE TRIGGER

- CREATE VIEW

- CREATE TYPE

 

실습에 필요한 패키지

- DBMS_OUTPUT

- DBMS_SQL

- UTL_FILE

- DBMS_PIPE

- DBMS_ALERT

 

※ 패키지 확인

SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE OWNER='SYS' AND OBJECT_TYPE='PACKAGE';

 

 

PL/SQL Block 구조

********************************************************************************************************************

DECLARE

     변수 선언문;

BEGIN

     프로그램 코드;

EXCEPTION

     예외 처리문;

END;

********************************************************************************************************************

- 변수선언문 : 블럭에서 사용할 변수를 정의. 커서 정의와 중첩된 PL/SQL 프로시저 및 함수도 여기서 정의.

- 프로그램코드 : 블럭을 구성하는 PL/SQL 문.

- 예외처리문 : 런타임 오류나 예외 발생시 트리거되는 프로그램 코드.

 

- 각 블럭에서 문장의 끝을 알리기 위해 반드시 세미콜론(;)을 붙인다.

- BEGIN 내에 다른 블럭을 내포할 수 있다.

 

[예제1] 간단한 작성과 실행

********************************************************************************************************************

DECLARE

       x       NUMBER;

BEGIN

       x := 65400;

END;

/

********************************************************************************************************************

- 맨 끝의 '/' 슬래시는 SQL*Plus에게 PL/SQL 코드의 입력이 끝났음을 알리고 이를 오라클 데이터베이스로 보내는 역할.

 

 

 

[예제2] 결과 출력하기

- 출력은 DBMS_OUTPUT 패키지가 담당한다.

- 패키지 안에 dbms_output.put_line 프로시저 사용.

- 출력을 SQL*Plus 에서 보려면

  SQL> SET SERVEROUTPUT ON 을 먼저 실행해야 한다.

 

********************************************************************************************************************

DECLARE

       x       NUMBER;

BEGIN

       x := 65400;

       dbms_output.put_line('The variable x = ');

       dbms_output.put_line(x);

END;

/

********************************************************************************************************************

 

- 내용을 /export/home/oracle/plsql/test.sql 파일에 저장하고 불러들일 수도 있다. 기본확장자는 .sql 이다.

- 간단한 내용은 vi editor를 통해 수정하면 되겠지만, Buffer는 바로 직전의 SQL문만 저장하고 있기 때문에 긴 PL/SQL 프로시저는 반드시 텍스트파일로 만들어서 실행시키는 형식을 취하도록 한다.

 

$ vi /export/home/oracle/plsql/test.sql

내용기입

:wq

 

SQL> @/export/home/oracle/plsql/test

 

 

 

[예제3] 함수 작성하기

- PL/SQL을 사용하여 Stored 함수와 Stored 프로시저를 작성한다. 방금까지 작성했던 코드를 Stored 함수로 캡슐화 시키면 그것을 한번만 컴파일하고 데이터베이스에 저장해 놓았다가 나중에 다시 사용할 수 있다.

- DB내에 stored 함수를 만들어 놓으면 나중엔 그 함수만 불러다 쓰면 된다.

 

********************************************************************************************************************

CREATE OR REPLACE FUNCTION ss_thresh

RETURN NUMBER AS

         x       NUMBER;

BEGIN

         x := 65400;

         RETURN x;

END;

/

********************************************************************************************************************

- OR REPLACE 는 동일한 함수가 존재하면 덮어쓰라는 의미이다.

- 1~2줄 CREATE 부터 AS 까지가 DECLARE 부분이다.

- 함수를 생성하는 것은 오라클이고 SQL*Plus는 결과만 보여줄 뿐이다.

 

 

SQL> SELECT * FROM DBA_OBJECTS WHERE OBJECT_NAME = 'SS_THRESH';

 

 

 

[결과 확인]

- 함수를 작성하고 컴파일을 하였으니 이제 사용만 하면 된다. 함수이지만 ( )를 사용하지 않는 이유는 인수가 없기 때문.

 

SQL> SELECT SS_THRESH FROM DUAL;

 

 

- 함수 생성시 STATUS가 INVALID 로 되어 있어 사용할 수 없기 때문에 코드에 잘못된 부분이 있는지 확인하고 수정 후 VALID 상태로 변경해야 한다. 오래 사용하지 않는 함수나 프로시저, 패키지도 INVALID 상태가 될 수 있다.

 

 

[에러확인]

- 위의 예제에서 실수로 입력이 잘못되었을 경우 에러를 확인하는 방법은 에러가 나고 바로 SHOW ERRORS 를 쳐보면 된다.

 

 

Oracle Stored Procedure 생성

오라클 | 2007. 12. 21. 15:06
Posted by 시반

툴에 익숙해진다는건 많은 부분을 놓치고 살게 된다는 사실을 오늘도 알게 되었다.

항상 토드나 이클립스 플러그인등으로 콘솔창이 아닌 곳에서 작업을 하다보니

툴이 지원되지 않은 곳에서 작업을 하게 되었을 땐 대략 난감한 일들이....

 

오늘은 간만에 오라클 콘솔에서 디비를 백업한 후 변경된 function과 procedure를 반영하는 일이 생겼다.

헌데 이게 무슨일 아무리 해두 생성 자체가 되지 않았다.

흐음 왜그러지 왜그러지...설정스크립트를 잘못 만들었나?

파일을 열고 그중 하나를 복사해서 실행해 봤지만 생성은 무슨....역시나 택도 없었다.

 

곰곰히 살펴보니 아차 마지막에  "/"  게 빠져있는게 아닌가..

툴에서는 사용자 편의를 위해 기냥 실행시켜두 생성이 되도록 지원을 하고 있었던 탓에

나도 언제부턴가 프로시저 생성 스크립트 안에서 /를 쓰지 않고 있었던 게 오늘의 실수.

 

하루 하루 참 부끄럽게도 초보도 하지 않는 실수를 연발하고 있으니...

요새 내가 귀밑머리에 허연게 보이더니만 결국 치매였던가....

 

아래는 기냥 글을 마치기에는 아쉬운 맘에 프로시져 생성 기본 탬플릿을 올려본다.

 

CREATE OR REPLACE PROCEDURE PROCEDURE_NAME IS
V_TEMP NUMBER;
/******************************************************************************
   NAME:       PROCEDURE_NAME 
   PURPOSE:    사용목적 간략 기술 

   REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2007-12-21          1. Created this procedure.

******************************************************************************/
BEGIN
    V_TEMP := 0;
   
   
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        NULL;
    WHEN OTHERS THEN
        RAISE;
END PROCEDURE_NAME;
/

 

 

문자가 부적합하다니...로그를 찍어봐두 인수값을 찍어봐도 아무런 문제가 없건만

에러가 나더라. 원인은 sql마지막에 ; 이 찍혀있던 탓.

이궁 어플리케이션 내 오라클 sql문 마지막에는 ;를 빼고 해야 한다는 정말 초보적인 실수를...

 

여하튼 오타땜시 코드를 살펴봐야 하는 이 저주받을 손가락 같으니라구

 

다시는 그런 실수를 하지말라는 다짐아래 글을 남겨본다

 

원인 : 어플리케이션 안에 쿼리문에 쿼리 이외의 문자가 존재할 경우 발생

특히 쿼리 마지막에 ';' 가 존재할 경우 발생되기 쉬움

 

ex)

StringBuffer sql = new StringBuffer();

sql.append(" insert into dept (dept_id,name)  values(?,?) ; ");    <- 바로 이 부분

 

db2와 oracle에서 프로시저 호출하기

DB2 | 2006. 6. 5. 19:47
Posted by 시반
======== oracle =========
try
{
   int age = 39;
   String poetName = "dylan thomas";
   CallableStatement proc =  connection.prepareCall("{ call set_death_age(?, ?) }");
   proc.setString(1, poetName);
   proc.setInt(2, age);
   cs.execute();
}
catch (SQLException e)
{
   // ....
}

 

======== DB2 =========

try
{
   int age = 39;
   String poetName = "dylan thomas";
   CallableStatement proc =  

     connection.prepareCall(" call set_death_age(cast(? as INT), cast(? as VARCHAR(20)) ");
   proc.setString(1, poetName);
   proc.setInt(2, age);
   cs.execute();
}
catch (SQLException e)
{
   // ....
}

 

오라클에서 잘 돌아가던 프로시저 호출 구문이 DB2에서 에러를 토해낼때

1. 파라미터 타입을 일치시켜라(예: cast(? as INT))

2. { } 부분을 삭제하라(그 이유는 아직도 잘.. 빼니 돌아갑니다.. (__ )a )

 

'DB2' 카테고리의 다른 글

DB2에서 *.sql 파일을 읽어들여 실행하기  (0) 2006.12.31
Column Size 변경  (0) 2006.12.19
DB2 에서의 OUTER JOIN  (0) 2006.06.01
DB2에서의 부분범위 처리  (0) 2006.06.01
SQL0418N 오류  (0) 2006.05.09
 

SQLCODE: -301 오류

DB2 | 2006. 5. 8. 19:16
Posted by 시반

개괄 

 Oracle환경에 개발된 소스를 DB2로 옮긴 후 런타임시 PreparedStatement의 setString(int,String)이 사용된곳에서 SQLCODE: -301 에러가 난다

 증상

com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -301, SQLSTATE: 07006,SQLERRMC: 1

 환경

Websphere5.0, DB2 8.0, JDK1.4, Struts1.1
DB접속환경
data source : org.apache.commons.dbcp.BasicDataSource
driver : com.ibm.db2.jcc.DB2Driver
jdbc type : type4

원인 

PreparedStatement구문의 setXXX()와 database쪽의 데이타타입의 불일치

테이블의 컬럼의 데이타타입이  decimal 인 곳에 해당하는 파라미터의 값지정시  setString으로 세팅시 에러발생 즉, varchar타입이 아닌곳은 모두 에러 발생.

조치

Database쪽의 데이타 타입과 일치시킴.(오라클은 데이타타입과 무관하게 setString으로 가능..)

여기서, 문제는 java소스내의 preparedstatement의 파라미터 셋팅에 관계되는 모든 변수가 String이기에
setXXX(int,String) 이여만한다.
쿼리문의 파라미터 셋팅하는 곳이 소스내에 5000여곳이 넘게 존재하므로 각각에 올바른 데이터타입으로 셋팅하게 수정하는것은 불가능.


[1차 해법]
setString(int,String)을 모두 setObject(int,Object)로 변경했음(317개화일의 5000곳이상에 존재하는 setString을...ㅠㅠ)
자동케스팅이 되므로 성공. (하지만 좀더 좋은 방법을 찾아봄 - 순노가다이므로ㅡㅡ;)

[2차 해법]
Datasource를 DB2의 것(com.ibm.db2.jcc.DB2DataSource)으로 변경하여 수정
DB2DataSource.setDeferPrepares(false); // 기본값은 true
로 설정하면 setString(int,String)으로도 DB상의 타입에 맞게 자동케스팅이 일어남.
그러나, true의 경우보다 성능은 떨어진다고 함.(DB2 인포메이션센타에서)
테스트 성공 (1차의 경우보다 덜 노가다. 하지만 더 좋은 방법 모색 ㅡㅡ;; )

[3차 해법-최종안]
처음의 Source를 그대로 유지
datasource : org.apache.commons.dbcp.BasicDataSource
preparedstatement의 파라미터 셋팅도 setString(int,String) 그대로 둠.
변경사항 : JDBC접속 url에 파라미터 첨가.
jdbc:db2://host:portNumber/DBname  -> jdbc:db2://host:portNumber/DBname:deferPrepares=false;
(여기서 세미콜론도 꼭 있어야됩니다.)

다른 소스의 변경없이
테스트 성공. ㅡㅡ;;;;;;; (초간단)

'DB2' 카테고리의 다른 글

DB2에서의 부분범위 처리  (0) 2006.06.01
SQL0418N 오류  (0) 2006.05.09
SQL30081N 오류  (0) 2006.05.02
DBMS별 날짜 포맷변환  (0) 2006.04.13
DB2 migration 중 발생한 에러  (0) 2006.04.06
 

DBMS별 날짜 포맷변환

DB2 | 2006. 4. 13. 14:52
Posted by 시반

DBMS 별 시간, 날짜 조회 쿼리

 

Oracle

select sysdate from dual; 날짜+시분초 까지 조회가능                                

select current_timestamp from dual;  날짜+밀리초+시간존 까지 조회          

MS SQL

 

select getdate()    날짜 + 밀리초 단위까지 조회가능                                   

 

DB2 UDB

select current timestamp from sysibm.sysdummy1  날짜+밀리초까지 조회

select current date from sysibm.sysdummy1          날짜만 조회              

select current time from sysibm.sysdummy1            밀리초 단위시간조회  

 

DBMS 별 default date format

Oracle      

YY/MM/DD  (한글)                                                                                      

DD-MON-YYYY  (영어)                                                                                 

MS SQL

YYY/MM/DD HH:MI:SS   (한글)                                                                     

MM-DD-YYYY HH:MI:SS   (영어)                                                                   

DB2 UDB

YYYY-MM-DD-HH:MI:SS.MMMMMM (TIMESTAMP 타입)                                

YYYY-MM-DD (DATE 타입)                                                                          

HH:MI:SS.MMMMMM (TIME 타입)                                                               

 

날짜 포맷 변환표

 

형식

 

RDBMS

변환 문법

'YYYY.MM.DD'

Oracle

 

TO_CHAR(date_exp, 'YYYY.MM.DD')

 

MSSQL

 

CONVERT(VARCHAR, date_exp, 102)

 

DB2

 

REPLACE(CHAR(DATE(date_exp),ISO), '-', '.')

 

 'HH:MI:SS'

Oracle

 

TO_CHAR(date_exp, 'HH:MI:SS')

 

 

MSSQL

 

CONVERT(VARCHAR, date_exp, 108)

 

DB2

 

CHAR(TIME(date_exp) , JIS )

 'YYYY/MM/DD'

 

Oracle

 

TO_CHAR(date_exp, 'YYYY/MM/DD')

 

MSSQL

 

CONVERT(VARCHAR, date_exp, 111)

 

DB2

 

REPLACE(CHAR(DATE(date_exp), ISO), '-', '/')

 'YYYYMMDD'

 

Oracle

 

TO_CHAR(date_exp, 'YYYYMMDD')

 

MSSQL

 

CONVERT(VARCHAR, date_exp, 112)

 

DB2

 

CHAR(DATE(date_exp))

 'HH24:MI:SS'

 

Oracle

 

TO_CHAR(date_exp, 'HH24:MI:SS')

 

MSSQL

 

CONVERT(VARCHAR(8), date_exp, 114)

 

DB2

 

CHAR(TIME(date_exp) )

 'YYYY.MM.DD HH24:MI'

 

Oracle

 

TO_CHAR(date_exp, 'YYYY.MM.DD HH24:MI')

 

MSSQL

 

CONVERT(VARCHAR, date_exp, 102) + ' ' + CONVERT(VARCHAR(5), date_exp, 114)

 

DB2

 

REPLACE(CHAR(DATE(date_exp), ISO), '-', '.') || CAST( TIME(date_exp) AS CHAR(5))

 'YYYY/MM/DD HH24:MI:SS'

 

Oracle

 

TO_CHAR(date_exp, 'YYYY/MM/DD HH24:MI:SS')

 

MSSQL

 

CONVERT(VARCHAR, date_exp, 111) + ' ' + CONVERT(VARCHAR(8), date_exp, 114)

 

DB2

 

REPLACE(CHAR(DATE(date_exp), ISO), '-', '/') || CAST( TIME(date_exp))

 

 

'DB2' 카테고리의 다른 글

SQLCODE: -301 오류  (0) 2006.05.08
SQL30081N 오류  (0) 2006.05.02
DB2 migration 중 발생한 에러  (0) 2006.04.06
oracle에서 DB2로 migration  (0) 2006.04.06
SQLState messages reported by SQL  (0) 2006.04.05
 

oracle에서 DB2로 migration

DB2 | 2006. 4. 6. 15:30
Posted by 시반

난이도 : 초급

Cindy Wong, Database Consultant, IBM
Samuel Poon, Database Consultant, IBM

2005 년 9 월 08 일

데이터베이스 관리자 커뮤니티에서 엄선한 IBM DB2® Universal Database™ 관련 추천 필독 리스트를 소개한다.

머리말

이 글에서 DB2 UDB for Linux, UNIX®, and Windows®관련 온라인 교육자료 리스트를 소개한다. DB2 UDB Information Center역시 좋은 자료들을 많이 갖추고 있다. 이 글에 소개된 많은 목록들은 IBM developerWorks의 기술자료와 IBM Redbook으로 소개된 것들이다. DB2 데이터베이스 관리, 설치, 마이그레이션, 관리, 모니터링 및 튜닝, 가용성, 데이터베이스 포팅(Porting), 문제 확인 등으로 범주를 나누어 정리하였다.





설치와 마이그레이션

DB2 UDB for Linux, UNIX, Windows 문서 활용하기
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0412chong/

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2004년 12월
  • 다양한 DB2 UDB 제품 정보의 소스들을 설명하고 있다. DB2 정보 센터, 릴리스 노트, 기술 노트, 플래시가 어떻게 다른지를 이해할 수 있다. 다른 유형의 정보들을 찾을 때 어떤 리소스를 사용해야 하는지, 누가 이 정보를 발표했는지, 이러한 정보 소스들이 어떻게 업데이트되는지 등의 DB2 정보 검색에 대한 팁도 제공한다.

분산 DB2 UDB 서버 비교(한글)
http://www.ibm.com/developerworks/db2/library/techarticle/0301zikopoulos/0301zikopoulos1.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2005년 5월
  • 분산 IBM DB2 Universal Database (DB2 UDB) 제품군의 기본 라이센싱 규칙, 기능, 특징의 차이 등을 이해하기 쉽도록 표로 만들었다.

DB2 Version 8의 분산 에디션 중 자신에게 맞는 에디션 찾기
http://www.ibm.com/developerworks/db2/library/techarticle/0211zikopoulos/0211zikopoulos.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2005년 5월
  • 이 글은, Version 8.2.2의 제품 기능, 에디션, 라이센싱에 대한 최신 소식들로 구성된다. 필자는 여러 옵션들과 여기에 기존 사용자 환경을 DB2 에디션에 매핑시킨 참조표도 제공한다.

개발자와 데이터베이스 관리자를 위한 DB2 Universal Database
http://www.db2mag.com/story/showArticle.jhtml?articleID=23902542

  • 유형: 기술자료
  • 레벨: Introductory
  • 최근 릴리스 된 DB2 Universal Database는 개발자와 DBA를 위한 기능들을 많이 갖추었다. DB2 UDB v.8.2는 데이터베이스 관리자와 개발자들의 생산성을 높이고 복잡한 데이터 관리 요구 사항들을 충족시킬 수 있는 기능들을 제공한다. 새롭고 향상된 기능을 만나보자.

IBM DB2 UDB Express Edition 설치하기
http://www.ibm.com/developerworks/db2/library/techarticle/0306gao/0306gao.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2003년 6월
  • DB2 UDB Express에서는 편리한 응답 파일 방식의 DB2 설치가 가능하다. 이로서 DB2 UDB Express 전개가 쉬워지며 DB2를 개인의 애플리케이션 프로그램에 임베딩 할 수 있다. 이 글에서 리눅스와 Microsoft Windows에서 완벽한 DB2 응답 파일 프로세스를 설명한다.

DB2 V7 데이터베이스를 DB2 UDB Version 8.1에 마이그레이션하기
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0403liu/index.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2004년 3월
  • 최신 DB2 버전의 장점과 쉬워진 마이그레이션을 배운다. 이 글에서는 V8.1.4 업데이트의 새로운 기능과 향상된 부분을 요약했다. 준비에서부터 실제 마이그레이션, 마이그레이션 후속 작업 등 전체 마이그레이션 과정을 설명한다.




관리

DB2 UDB DBA 체크리스트
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0404snow/index.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2004년 4월
  • 자동차와 마찬가지로 데이터베이스 역시 최적으로 실행시키기 위해서는 점검이 필요하다. 이 글에서 데이터베이스 점검에 대한 모든 것을 자세히 다룬다.

DB2 UDB Version 8.2의 RUNSTATS의 가이드라인과 예제
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0412pay/

  • 유형: 기술자료
  • 레벨: Intermediate
  • 날짜: 2004년 12월
  • RUNSTATS는 옵티마이저가 데이터로 가는 가장 빠른 경로를 결정할 때 사용되는 목록 통계를 업데이트하는 DB2 UDB의 유틸리티이다. DB2 UDB V8.2에서 RUNSTATS 옵션의 수가 많이 증가하였다. RUNSTATS 사용 방법을 이해하는 것이 최적의 퍼포먼스를 끌어내기 위한 시작이라 할 수 있다.

DB2 제품군들 간 데이터 이동하기
http://www.redbooks.ibm.com/abstracts/sg246905.html

  • 유형: Redbook
  • 레벨: Intermediate
  • 날짜: 2003년 2월
  • DB2 제품군(DB2 for z/OS, DB2 for Linux, DB2 for UNIX, DB2 for Windows)에서 현재 사용할 수 있는 기능, 툴, 유틸리티가 어떤 것이 있는지를 분석했다. 고성능 언로드(unload) 툴, 로드 유틸리티의 새로운 크로스 로더 옵션 등에 초점을 맞추었다. 또한 Federated Database 개념과 예제를 설명한다.

DB2 UDB 메모리 모델: DB2가 메모리를 사용하는 방법
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0406qi/index.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2004년 6월
  • DB2가 메모리를 사용하는 방법의 기초를 설명한다. 32 비트 메모리 아키텍쳐의 한계도 자세히 다룬다. 지원 플랫폼(AIX, Solaris, HP-UX, Linux, Windows)별 가장 일반적인 메모리 할당 문제들을 예제를 통해 설명한다.





모니터링과 튜닝

DB2 UDB v8.1과 데이터베이스 튜닝 방법: 고성능 지침서
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0404mcarthur/index.html

  • 유형: 기술자료
  • 레벨: Intermediate
  • 날짜: 2004년 4월
  • DB2 UDB 데이터베이스와 애플리케이션에서 최적의 퍼포먼스를 이끌어 내야 하는 여러분을 위한 지침서이다. 다양한 개발 단계에서 구현할 수 있는 기술들을 설명한다. 여기에는 데이터베이스 디자인 및 레이아웃 기술, 데이터베이스 설정, SQL 구문 디자인, 관리, 모니터링 등이 포함된다.

AIX의 데이터베이스 퍼포먼스 튜닝
http://www.redbooks.ibm.com/abstracts/SG245511.html

  • 유형: Redbook
  • 레벨: Intermediate
  • 날짜: 2003년 1월
  • RDBMS 퍼포먼스 전문가들이 제시하는 힌트와 팁들로 구성된 레드북이다. 퍼포먼스 관점에서 본 일반적인 데이터베이스 레이아웃 개념, 디자인 및 사이징 가이드라인, 튜닝에 대한 조언, DB2 UDB, Oracle, IBM Informix 데이터베이스의 퍼포먼스 및 튜닝 정보를 설명한다. 이 글에서 제시된 퍼포먼스 팁은 시스템 관리자 또는 데이터베이스 관리자들이 변경할 수 있는 것들과 연관되어 있다. (이 글에서는 애플리케이션과 데이터베이스 디자인에 관련된 퍼포먼스 튜닝(SQL 쿼리 튜닝) 문제는 다루지 않는다.

고성능 OLTP 와 BI를 위한 DB2 UDB ESE V8 non-DPF 퍼포먼스 가이드
http://www.redbooks.ibm.com/abstracts/SG246432.html

  • 유형: Redbook
  • 레벨: Intermediate
  • 날짜: 2004년 4월
  • AIX와 Windows 2000 플랫폼이 포함된 DB2 UDB ESE V8 환경에서 고성능 OLTP와 BI 애플리케이션을 구현하는 방법을 자세하게 설명한다. DB2 애플리케이션 개발자와 데이터베이스 관리자(DBA)를 위한 레드북이다.

퍼포먼스 튜닝 기초
Part 1: http://www.db2mag.com/story/showArticle.jhtml?articleID=12803202
Part 2: http://www.db2mag.com/story/showArticle.jhtml?articleID=15300098
Part 3: http://www.db2mag.com/story/showArticle.jhtml?articleID=17602321

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2003년 3사분기 – 2004년 1사분기
  • DB2 Universal Database (UDB) version 8.1(Linux, UNIX, Windows)은 간단한 스탠드얼론 시스템에서 복잡한 서버 그리고 다양한 플랫폼을 실행하는 클라이언트 환경까지 존재할 수 있다. 환경과 상관 없이 사용자들은 한 가지 문제에 집중한다. 바로 데이터베이스 애플리케이션의 퍼포먼스이다.

퍼포먼스 모니터링
Part 1: http://www.db2mag.com/story/showArticle.jhtml?articleID=18901270
Part 2: http://www.db2mag.com/story/showArticle.jhtml?articleID=23903573
Part 3: http://www.db2mag.com/story/showArticle.jhtml?articleID=51200282

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2004년 2사분기 – 2004년 4사분기
  • 데이터베이스 퍼포먼스를 높이기 위해서는 퍼포먼스가 어디에서 고통을 받고 있는지와 이를 개선할 방법을 규명해야 한다. DB2 Universal Database (UDB)의 퍼포먼스 모니터링 툴을 소개한다.

DB2 모니터링 데이터에 SQL로 액세스하기: 테이블 기능으로 스냅샷 찍기
http://www.ibm.com/developerworks/db2/library/techarticle/0305deroos/0305deroos.html

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2003년 5월
  • DB2 UDB Version 8.1은 SQL 테이블 기능을 사용하여 데이터베이스 시스템 모니터를 캡쳐하는 기능이 있다. 그 기능을 자세히 설명한다.

자바 프로그램으로 설명하는 DB2 UDB OLTP 튜닝
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0508chong/

  • 유형: 기술자료
  • 레벨: Intermediate
  • 날짜: 2005년 8월
  • 이 글은 단계별 기술을 설명한다. IBM DB2 Universal Database (UDB) 데이터베이스 서버를 모니터링 및 튜닝할 때 적용되는 기술을 단계별로 설명한다. 샘플 자바 프로그램인 "PERFORMER"를 사용하여 기술을 배우고 자신의 시스템에도 적용해 본다. 이 글에서는 중요한 DB2 UDB 설정 매개변수들을 튜닝하는 방법에 초점을 맞추어 설명한다. "잘못된 쿼리"를 포착하여 픽스하는 방법도 설명한다.

DB2 SQL 액세스 경로 튜닝
http://www.ibm.com/developerworks/db2/library/techarticle/0301mullins/0301mullins.html

  • 유형: 기술자료
  • 날짜: 2003년 1월
  • 데이터베이스계의 "구루" Craig Mullins가 액세스 경로 및 조인(join) 메소드의 기초를 설명하고 SQL 퍼포먼스를 감시 및 튜닝하는 Explain 툴의 사용법을 설명한다.




가용성(High availability)

DB2 UDB를 위한 가용성 및 재해 복구 개요
http://www.ibm.com/developerworks/db2/library/techarticle/0304wright/0304wright.html

  • 유형: 기술자료
  • 날짜: 2003년 4월
  • 데이터의 가용성과 재배 복구 기능은 중요한 데이터베이스 시스템의 핵심 조건이다. 이 글에서 DB2 UDB의 해당 기능들을 요약했다.

DB2 Universal Database와 가용성 데이터 스토어
http://www.ibm.com/developerworks/db2/library/techarticle/0310melnyk/0310melnyk.html

  • 유형: 기술자료
  • 날짜: 2003년 10월 9일
  • 중요한 데이터베이스 애플리케이션들은 데이터 손실을 방지하고 높은 가용성의 데이터 스토어를 보장하는 강력한 전략을 필요로 한다. 이 글에서 리눅스, UNIX, Windows 플랫폼의 고가용성 옵션들을 연구한다.

DB2 UDB V8.1 ESE와 HACMP 4.4.1을 이용한 AIX의 가용성: 상호 인계 시나리오
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0407nikolopoulou/

  • 유형: 기술자료
  • 날짜: 2004 년 7월
  • 데이터의 가용성은 온 디맨드 환경의 필수조건이다. 이 글에서 IBM AIX®상에 고 가용성 클러스터 멀티 플로세싱(HACMP)로 DB2 UDB의 일부를 고가용성 기능으로 설정하는 방법을 설명한다.

고 가용성 환경에서 분산 DB2 Universal Database (DB2) Version 8 서버 리스닝
http://www.ibm.com/developerworks/db2/library/techarticle/0301zikopoulos/0301zikopoulos.html

  • 유형: 기술자료
  • 날짜: 2004년 9월 업데이트
  • 고 가용성 환경에 DB2 서버를 정확히 라이센싱하려고 하는가? 시간이 없거나 아니면 공지 레터, PLET, 라이센싱 시트가 눈에 들어오지 않는가? Paul Zikopoulos와 Leon Katsnelson이 친절하게 설명한다.

웹 캐스트: 새로운 고 가용성 솔루션으로 복구로부터 DB2 데이터 보호하기
http://www.ibm.com/software/sw-events/webcast/S416746W05344Z10.html

  • 유형: 웹 캐스트
  • 날짜: 2005년 4월 - 2005년 9월
  • High Availability Disaster Recovery (HADR) 솔루션을 자세하게 다룬다. HADR은 오류에 강한 데이터베이스 복제(스탠바이 데이터베이스)를 만들어서 관리한다. 이것으로 정전 시 데이터를 보호할 수 있다. 원래 데이터베이스가 정전 시, 이 스탠바이 데이터베이스에서는 DB2 워크로드를 인계하는 것이 단지 몇 초 만에 가능하다. 주 데이터베이스에 액세스하는 클라이언트는 자동으로 스탠바이 데이터베이스로 리다이렉션 된다. IBM DB2 UDB는 데이터베이스의 빌트인 기능으로 HADR을 제공한다.





리눅스 플랫폼

리눅스용 DB2의 설치 및 실행
http://www.redbooks.ibm.com/abstracts/SG246899.html

  • 유형: Redbook
  • 날짜: 2003년 2월
  • 리눅스는 지난 몇 년 동안 가장 빠르게 성장한 서버 운영 플랫폼이다. DB2 Universal Database는 이 분야의 기술을 선도하고 있다. 이 글에서 DB2 Universal Database (UDB)와 SuSE 및 Red Hat 리눅스를 통합하는 방법을 설명한다.

DB2 통합 클러스터 환경 전개 가이드
http://www.redbooks.ibm.com/abstracts/SG246376.html

  • 유형: Redbook
  • 날짜: 2004년 10월
  • 리눅스용 IBM DB2 통합 클러스터 환경은 최고의 소프트웨어, 하드웨어, 서비스를 결합할 수 있는 사전에 테스트를 완료한 고성능 솔루션이다. 이 글에서 DB2 Integrated Cluster Environment에 대한 자세한 내용을 설명한다.

DB2 ICE – 리눅스 클러스터를 활용한 데이터 스케일링
http://www.db2mag.com/story/showArticle.jhtml?articleID=51000442

  • 유형: 기술자료
  • 날짜: 2004년 4사분기
  • DB2 Universal Database (UDB)는 리눅스 클러스터에 지원을 추가한 최초의 상용 데이터베이스였다. 200년 12월에 처음 등장했다. 2003년, IBM은 통합 데이터베이스 솔루션인 DB2 Integrated Cluster Environment (ICE)을 도입했다.




Windows 플랫폼

Windows 환경의 DB2 UDB V8.2
http://www.redbooks.ibm.com/redbooks.nsf/RedbookAbstracts/sg247102.html

  • 유형: Redbook
  • 날짜: 2004년 10월
  • IBM DB2 Universal Database Version 8.2는 DBRM 기술 분야에서 또 한번의 중요한 도약을 했다. 정보 관리 고객들의 늘어나는 요구 사항들을 다룬 새로운 기능을 다루게 되었다. 이 레드북은 "DB2 UDB Exploitation of the Windows Environment (SG24-6893)"의 업데이트라고 할 수 있다. DB2 UDB Version 8.2의 기능과 특징에 초점을 맞추었다.

Windows 환경에서 DB2 UDB 활용하기
http://www.db2mag.com/showArticle.jhtml?articleID=51000442

  • 유형: Redbook
  • 날짜: 2003년 3월
  • Microsoft Windows 2000과 DB2 UDB V8.1을 효과적으로 구현하는 방법을 다루고 있다. Windows에 DB2 UDB 설치, 설정, 관리에 관심이 있는 누구라도 독자가 될 수 있다.

Windows Server 2003에서 DB2 UDB 스케일링
http://www.redbooks.ibm.com/abstracts/SG247019.html

  • 유형: Redbook
  • 날짜: 2003년 8월
  • 본서는 Windows Server 2003에서의 DB2 UDB V8.1의 스케일링 가이드이다.




포팅(Porting)

DB2 UDB 포팅(Porting): 자료 및 로드맵
http://www.ibm.com/developerworks/db2/zones/porting/

  • 유형: 웹 사이트
  • IBM DB2 Universal Database 포팅 웹 사이트에서는 다른 데이터베이스 관리 시스템에서 DB2 UDB로 애플리케이션과 데이터를 포팅할 때 필요한 정보를 제공한다. 포팅 및 마이그레이션 과정이 간략하게 설명되어 있다. 자세한 내용은 Porting steps 탭에서 참조할 수 있다.

IBM DB2 마이그레이션 툴킷
http://www.ibm.com/software/data/db2/migration/mtk/

  • 유형: 웹 사이트
  • IBM DB2 Migration Toolkit은 Oracle (버전 7, 8i, 9i), Sybase ASE (버전 11 ~ 12.5), Microsoft SQL Server (버전 6, 7, 2000), Informix (IDS v7.3와 v9), Informix XPS (지원이 제한되어 있음) 에서 DB2 UDB V8.1와 DB2 V8.2 (Windows, UNIX, Linux)로의 마이그레이션을 위한 툴이다. DB2 iSeries에는 iSeries v5r3이 포함되어 있다. DB2 Migration Toolkit은 다양한 플랫폼(Windows 2000, Windows NT 4.0, Windows XP, AIX, Linux, HP/UX, Solaris)상에서 사용할 수 있다.

Microsoft SQL Server와 IBM DB2 UDB 간 변환 가이드
http://www.redbooks.ibm.com/redpieces/abstracts/sg246672.html

  • 유형: Redbook
  • 날짜: 2005년 5월
  • Microsoft SQL Server 데이터베이스와 애플리케이션을 IBM DB2 UDB로 변환할 때 참조할 있는 가이드북이다. 본 레드북은 변환 시 기술적 고려 사항과 방법을 중점적으로 설명한다. SQL Server와 DB2 UDB의 차이점을 비롯하여 제품 아키텍쳐, 데이터 유형, SQL 언어, 데이터베이스 객체(테이블, 인덱스, 저장 프로시져, 트리거), 관리 기능 등도 설명한다. 아울러 마이그레이션 툴의 사용법과 툴의 적절한 사용처도 설명한다.

Microsoft SQL Server 2000에서 DB2 UDB Version 8.2로 포팅(Porting)하기
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0501rada/

  • 유형: 기술자료
  • 날짜: 2005년 1월
  • 데이터베이스와 애플리케이션의 포팅에 관련된 DB2 UDB 제품에 대해 배우고 Microsoft SQL Server 2000 에서 DB2 UDB V8.2로 애플리케이션을 포팅할 때 중요한 부분을 설명한다. 데이터베이스 옵션, 데이터 정의 언어(DDL), 데이터 모델링, SQL 고려사항, 데이터 변환, 애플리케이션 변환 등을 중심으로 두 제품을 비교한다.

Sybase Adaptive Server Enterprise에서 DB2 Universal Database Version 8.1로 포팅(Porting)하기
http://www.ibm.com/developerworks/db2/library/techarticle/0307rada/0307rada.html

  • 유형: 기술자료
  • 날짜: 2003년 7월
  • IBM DB2 UDB 제품들과 이것의 기능을 소개하고 데이터베이스와 애플리케이션 포팅 및 Sybase Adaptive Server Enterprise에서 DB2 UDB V8로 애플리케이션을 포팅할 때 고려해야 할 측면들을 설명한다. 데이터베이스 옵션, 데이터 정의 언어(DDL), 데이터 모델링, SQL 고려사항, 데이터 변환, 애플리케이션 변환 등을 중심으로 두 제품을 비교한다.

Oracle과 DB2 UDB간 변환 가이드
http://www.redbooks.ibm.com/abstracts/SG247048.html

  • 유형: Redbook
  • 날짜: 2003년 11월
  • DB2 Universal Database (DB2 UDB)는 오랫동안 이 분야의 기술을 선도했다. IBM 레드북에서는 Oracle에서 DB2 UDB Version 8.1로 데이터베이스 시스템을 마이그레이션 하는 방법을 설명한다. 마이그레이션 전략과 플래닝, 마이그레이션 툴, 마이그레이션 예제를 상세히 설명한다.

데이터베이스 이동: Informix Dynamic Server에서 DB2 Universal Database로
http://www.redbooks.ibm.com/abstracts/SG246367.html

  • 유형: Redbook
  • 날짜: 2004년 12월
  • IBM Informix Dynamic Server (IDS) Version 9.4에서 IBM DB2 Universal Database Version 8.2로 이동할 때 고려 사항과 방법들을 중점적으로 설명한다. 본 레드북에서는 데이터 애플리케이션과 관리 분야의 기본적인 주제들을 다룬다. 또한 두 제품을 잘 이해할 수 있도록 두 제품의 아키텍쳐 개요도 실었다. Informix용 DB2 Migration Toolkit의 기능도 설명하여 실제 변환 과정에 쉽게 적용할 수 있도록 하였다.

MySQL과 DB2 UDB간 변환 가이드
http://www.redbooks.ibm.com/abstracts/SG247093.html

  • 유형: Redbook
  • 날짜: 2004년 5월
  • DB2 Universal Database (DB2 UDB)는 오랫동안 이 분야를 선도해왔다. MySQL 에서 DB2 UDB Version 8.1(Linux)로 데이터베이스 시스템을 마이그레이션 하는 방법을 설명한다.

Move data using the IBM DB2 Migration Toolkit
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0411yip/

  • 유형: 기술자료
  • 레벨: Intermediate
  • 날짜: 2004년 11월
  • 최근 애플리케이션을 IBM DB2 Universal Database (UDB)로 포팅(porting)했는가? Oracle 또는 SQL Server의 기존 데이터를 DB2 UDB로 옮겨야 하는가? IBM DB2 Migration Toolkit을 사용해보자.

DB2 루틴을 사용한 쉬운 마이그레이션
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0402greenstein/

  • 유형: 기술자료
  • 레벨: Introductory
  • 날짜: 2004년 9월
  • 다른 관계형 데이터베이스 관리 시스템(RDBMS)에서 DB2로 마이그레이션을 하는가? 마이그레이션을 도울 몇 가지 루틴을 소개한다.





문제 확인

FFDC 데이터 분석
http://www.db2mag.com/db_area/archives/2003/q1/sanders.shtml

  • 유형: 기술자료
  • 날짜: 2003년 1사분기
  • 암호화된 First Failure Data Capture (FFDC) 정보를 더 이상 두려워하지 말라. FFDC는 DB2의 가장 유용한 진단 툴이다.

문제가 무엇입니까?
http://www.db2mag.com/showArticle.jhtml?articleID=17700355

  • 유형: 기술자료
  • 날짜: 2004년 1사분기
  • db2support를 사용하여 자동으로 분석할 수 있다. IBM DB2 Universal Database (UDB) 관리자는 시스템 설정을 늘 간결하게 설명하려고 노력한다. 하지만 설명해야 할 설정 매개변수들과 데이터베이스 특징들은 너무나 많다. DB2 version 7.2 FixPak 4에 도입된 db2support 명령어로 DB2 설치 정보를 빠르게 모을 수 있다.

db2pd 툴
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0504poon2/

  • 유형: 기술자료
  • 날짜: 2005년 4월
  • IBM DB2 Universal Database Version 8.2에는 db2pd 라고 하는 DB2 데이터베이스와 인스턴스의 모니터링 및 관리용 툴이 새로이 도입되었다. 이 툴을 사용하여 트랜잭션, 테이블 공간, 테이블 통계, 동적 SQL, 설정 등을 지속적으로 트래킹 할 수 있다. 문제 해결, 문제 확인, 퍼포먼스 튜닝도 쉽다.








필자소개

Cindy Wong : 데이터베이스 컨설턴트, IBM


'DB2' 카테고리의 다른 글

DBMS별 날짜 포맷변환  (0) 2006.04.13
DB2 migration 중 발생한 에러  (0) 2006.04.06
SQLState messages reported by SQL  (0) 2006.04.05
01 Basic SQL Procedure Structure  (0) 2006.04.03
DB2기초 : 재미있는 날짜와 시간  (0) 2006.03.24
 
블로그 이미지

시반

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

카테고리

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