데이터베이스 마이그레이션 툴 Ispirer MnMTK는 Oracle에서 HiRDB로의 마이그레이션을 수행합니다. 우리의 변환 툴 사용하여 스토어드 프로시저 마이그레이션, 함수 마이그레이션, 트리거 마이그레이션, 뷰 마이그레이션, 스키머 마이그레이션을 수행할 수 있습니다. 우리는 우리의 고객에게 자동화된 데이터베이스와 어플리케이션 마이그레이션 솔루션을 이해시킴으로써 비즈니스 성장을 도울 것입니다.
Oracle에서 HiRDB로의 마이그레이션 개요
이 툴 Oracle에서 HiRDB로의 데이터베이스 오브젝트와 속성을 마이그레이션 합니다:
테이블 변환
스토어드 프로시저, 함수, 트리거 변환
스토어드 PL/SQL 블록 변환
스토어드 패키지 변환
인덱스 변환
함수 변환
설명 변환
우리는 Oracle에서 HiRDB로의 마이그레이션에 대해 깊은 지식을 알려 드리고 싶습니다.
테이블 변환
컬럼 구조 변환 - 데이터 타입, 기본값
무결성 제약조건 변환 - 기본키와 외래키, 유니크 제약조건, 제약조건 체크
파티션과 옵션 변환
Oracle:
CREATE TABLE hanbai
(
data_date NUMBER(8) NOT NULL,
mise_no CHAR(6) NOT NULL,
nou_gen_kin NUMBER(15,2),
kep_kaisu NUMBER(9) DEFAULT 10
)
PCTFREE 05
PARTITION BY RANGE (data_date)
(PARTITION d19970101 VALUES LESS THAN (19970102)
TABLESPACE TBS_USIA_10000K);
HiRDB:
CREATE TABLE hanbai
(
data_date INT NOT NULL,
mise_no MCHAR(6) NOT NULL,
nou_gen_kin DEC(15,2),
kep_kaisu INT DEFAULT 10
)
IN((TBS_USIA_10000K) data_date < 19970102)
PCTFREE = 05;
스토어드 프로시저, 함수, 트리거 변환:
기본 문장과 구조 (커서, 루프, 예외, DML 문 등) 변환
%TYPE과 %ROWTYPE 변수 변환
IN, OUT, INOUT 파라미터
Oracle:
CREATE TABLE t4 (c1 FLOAT, c2 TIMESTAMP, c3 INT);
CREATE TABLE t5 (c1 FLOAT, c2 TIMESTAMP, c3 INT);
CREATE OR REPLACE PROCEDURE cur1_proc(CNT FLOAT)
IS
CURSOR cur1 IS SELECT c1,c2 FROM t4;
cur1_rec cur1%ROWTYPE;
BEGIN
OPEN cur1;
LOOP
FETCH cur1 INTO cur1_rec;
EXIT WHEN SQL%NOTFOUND;
INSERT INTO t5 (c1,c2)
VALUES( cur1_rec.c1, cur1_rec.c2 );
END LOOP;
CLOSE cur1;
END;
HiRDB:
CREATE TABLE t4 (c1 FLOAT, c2 TIMESTAMP, c3 INT);
CREATE TABLE t5 (c1 FLOAT, c2 TIMESTAMP, c3 INT);
CREATE PROCEDURE cur1_proc(IN CNT FLOAT)
BEGIN
DECLARE cur1 CURSOR FOR SELECT c1,c2 FROM t4;
DECLARE SWV_CUR1_REC_C1 FLOAT;
DECLARE SWV_CUR1_REC_C2 TIMESTAMP;
OPEN cur1;
SWL_Label: WHILE 1 = 1 DO
FETCH cur1 INTO SWV_CUR1_REC_C1,SWV_CUR1_REC_C2;
IF SQLCODE = 100 THEN
leave SWL_Label;
END IF;
INSERT INTO t5(c1,c2)
VALUES(SWV_CUR1_REC_C1, SWV_CUR1_REC_C2);
END WHILE SWL_Label;
CLOSE cur1;
END;
END_PROC;
스토어드 PL/SQL 블록 변환:
PL/SQL 블록에서 스토어드 프로시저로의 변환
기본 문장과 구조 (커서, 루프, 예외, DML 문 등) 변환
%TYPE과 %ROWTYPE 변수 변환
Oracle:
DECLARE
i NUMBER;
BEGIN
FOR i IN 0..681 LOOP
INSERT INTO msgcode_range VALUES (i);
END LOOP;
END;
HiRDB:
CREATE PROCEDURE proc1()
BEGIN
DECLARE i FLOAT;
SET i = 0;
WHILE (i <= 681) DO
INSERT INTO msgcode_range VALUES(i);
SET i = i+1;
END WHILE;
END;
END_PROC;
스토어드 패키지 변환:
Oracle 패키지의 스토어드 프로시저는 HiRDB 내 별도의 스토어드 프로시저로 변환합니다.
Ispirer MnMTK는 패키지의 변수를 프로시저의 INOUT 변수로 변환합니다.
기본 문장과 구조 변환
%TYPE과 %ROWTYPE 변수 변환
Oracle:
CREATE OR REPLACE PACKAGE package1
AS CNT float;
PROCEDURE proc1(INPARAM1 IN DATE);
PROCEDURE proc2;
END package1;
/
CREATE OR REPLACE PACKAGE BODY package1
AS
PROCEDURE proc1(INPARAM1 IN DATE)
AS
BEGIN
CNT := CNT+1;
END proc1;
PROCEDURE proc2
AS
BEGIN
CNT := CNT+2;
END proc2;
END package1;
/
HiRDB:
CREATE PROCEDURE PACKAGE1_PROC1(INOUT CNT FLOAT,
IN INPARAM1 TIMESTAMP)
BEGIN
SET CNT = CNT+1;
END;
END_PROC;
CREATE PROCEDURE PACKAGE1_PROC2(INOUT CNT FLOAT)
BEGIN
SET CNT = CNT+2;
END;
END_PROC;
인덱스 변환:
인덱스의 옵션 변환
Oracle:
CREATE INDEX IX1
ON HANBAI_D ( mise_no,shohin )
PCTFREE 05
TABLESPACE TBS_USIA_IX_10000K
LOCAL;
HiRDB:
CREATE INDEX IX1
ON HANBAI_D
(mise_no,shohin)
IN(TBS_USIA_IX_10000K)
PCTFREE = 05;
함수 변환:
주요 함수을 동일한 HiRDB로 변환
시간과 수 포멧 변환
Ispirer MnMTK는 부가적으로 함수 내에서 사용되는 타입도 변환합니다.
Oracle:
create table hanbai_t (c1 DATE, c2 NUMBER);
select trunc(c1, 'YEAR'), trunc(c2) from hanbai_t;
select to_timestamp('2012-06-14','RRRR-MM-DD HH24') from t;
HiRDB:
create table hanbai_t (c1 TIMESTAMP, c2 FLOAT);
select truncyear(c1), trunc(c2) from hanbai_t;
select timestamp_format('2012-06-14','YYYY-MM-DD HH') from t;
설명 변환:
Oracle:
-- comment1
REM comment2
REMARK comment3
HiRDB:
/*comment1*/
/*comment2*/
/*comment3*/
이 데모는 Ispirer MnMTK가 어떤 방식으로 Oracle에서 HiRDB 데이터베이스로의 마이그레이션을 수행할 수 있는지 보여줍니다:
Ispirer MnMTK는 또한 임베디드 SQL에서 HiRDB로의 프로젝트를 변환합니다. Ispirer MnMTK는 Pro*Cobol와 Pro*C 파일 내의 Oracle 임베디드 SQL을 변환합니다. 데이터베이스 마이그레이션 도구인 Ispirer MnMTK가 어떤 방식으로 어플리케이션 코드의 추출 없이도 임베디드 SQL 문을 마이그레이션 하는지 보여줍니다:
우리의 고객은 30 개국 이상에서 1 만개 이상의 상점을 운영하는 세계 유수의 소매 업체 중 하나였습니다. 이 회사는 공정한 가격으로 다양한 제품과 서비스를 제공함으로써 약 1 천만 고객에게 서비스를 제공합니다. 유럽, 중남미 및 아시아의 3 개 주요 시장에서 운영됩니다.Ispirer의 참여는 벨기에의 고객 부서와 관련이 있습니다.