从 Oracle 到 HiRDB 迁移
数据库迁移工具Ispirer MnMTK可以转换到HiRDB。您可以使用我们的转换工具为存储过程,功能,视图,图表迁移。我们帮助了解我们的客户自动数据库与应用迁移解决方案的价值,并使业务增长。
从Oracle到HiRDB迁移概观
该工具迁移一下数据库对象和属性到HiRDB:
- 表转换
- 存储过程,功能和触发器转换
- 存储PL/SQL块转换
- 存储包转换
- 索引转换
- 功能转换
- 注释转换
表的转换
- 列的定义转换 - 数据类型,缺省值
- 完整性约束转换 - 主关和外关键字,唯一和检查约束
- 分区和选项转换
Ispirer MnMTK允许转换项目与嵌入式SQL到HiRDB。Ispirer MnMTK转换Pro*Cobol和Pro*C文件与Oracle嵌入式SQL。您可以也看看如何 Ispirer MnMTK数据库迁移工具可以迁移嵌入式SQL语句没有提取它们从应用代码:
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块到存储过程转换
- 基本语句和句式转换
- %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
- 转换报的变量到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迁移
- SQL脚本的快和实用转换 - 您可能容易开始转换现有SQL脚本 - DDL语句,SQL查询等。
- 转换与数据库连接 - Ispirer MnMTK可以连接Oracle,提取和转换整个数据库或只是指定的对象和图式
- 生成SQL脚本在HiRDB 句式
- 命令行支持可以帮助您自动迁移过程
- 迁移的检验 - 这个工具可以比较表的数,表的行,与履行数据的检验为所有或选择的列 (主关键字或指定的顺序子句基础上的)
Ispirer转换解决方案
从Oracle到HiRDB 服务
工具
如果您也需要从Oracle转换到HiRDB, 我们将很高兴为您服务!请随时与我们联系。
|