1.从Oracle迁移至DM
1.1 创建Oracle测试环境
--创建用户 create user DM identified by Oracle; grant connect,resource to DM; --创建表 SQL> create table emp as select * from scott.emp; Table created. SQL> create table dept as select * from scott.dept; Table created. --创建带有lob字段的表 create table lob_tab(id int,i_txt clob); --测试数据 declare begin for i in 1..100000 loop insert into lob_tab values(i,lpad('aaa',i)); end loop; end; / --创建视图 create view emp_dept_view as select a.ename,a.sal,b.dname from emp a,dept b where a.deptno=b.deptno; --创建触发器 create or replace trigger emp_trigger before delete on emp for each row begin dbms_output.put_line('hello world'); end; / --创建触发器 CREATE OR REPLACE TRIGGER t BEFORE INSERT OR UPDATE OF sal, deptno OR DELETE ON emp BEGIN CASE WHEN INSERTING THEN DBMS_OUTPUT.PUT_LINE('Inserting'); WHEN UPDATING('sal') THEN DBMS_OUTPUT.PUT_LINE('Updating salary'); WHEN UPDATING('deptno') THEN DBMS_OUTPUT.PUT_LINE('Updating department ID'); WHEN DELETING THEN DBMS_OUTPUT.PUT_LINE('Deleting'); END CASE; END; --创建存储过程 create or replace procedure pro_emp as i number; begin select count(1) into i from emp where empno=7788; if i=0 then dbms_output.put_line('无此员工'); else dbms_output.put_line('有此员工'); end if; end; /
复制
2.迁移工具配置
迁移工具目录$DM_HOME/tool
./dts启动
看到procedure创建失败,原因为Oracle该procedure本就是失效的。
3.数据验证
Oracle端:
DM端:
验证lob表
Oracle端:
dm端:
3.附加测试
写了一个复杂的存储过程看看是否正常迁移
/ * 将表DM_TEST_INFO DM_NAME字段按照逗号分隔并展示 * / CREATE OR REPLACE PROCEDURE SP_STR(V_OUT OUT SYS_REFCURSOR) AS CURSOR C1 IS SELECT * FROM DM_TEST_INFO; TYPE C3 IS TABLE OF DM_TEST_INFO%ROWTYPE; C4 C3; V_START NUMBER :=1; V_LOCATE NUMBER; V_STR_BEFORE VARCHAR2(4000); V_STR VARCHAR2(100); BEGIN OPEN C1; LOOP EXIT WHEN C1%NOTFOUND; FETCH C1 BULK COLLECT INTO C4; FOR I IN 1..C4.COUNT LOOP V_STR:=C4(I).dm_name; WHILE INSTR(V_STR,',')>0 LOOP V_LOCATE :=INSTR(V_STR,','); V_STR_BEFORE :=SUBSTR(V_STR,V_START,V_LOCATE-V_START); INSERT INTO DM_TEST_INFO_temp(id,name,dm_name) VALUES(C4(I).id,C4(I).name,V_STR_BEFORE); V_STR :=SUBSTR(V_STR,V_LOCATE+1); END LOOP; INSERT INTO DM_TEST_INFO_temp(id,name,dm_name) VALUES(C4(I).id,C4(I).name,V_STR); commit; END LOOP; COMMIT; END LOOP; CLOSE C1; OPEN V_OUT FOR SELECT id,name,dm_name FROM DM_TEST_INFO_temp; END; / --构建测试数据 insert into DM_TEST_INFO values(1,'dm01','DMDSC,DMMPP,DMDW'); insert into DM_TEST_INFO values(1,'dm01','DMDTS,DMHS,DWRWC'); --调用 DECLARE C1 SYS_REFCURSOR; DATA_DT_1 DM_TEST_INFO_TEMP.ID%TYPE; INVESTOR_ID_1 DM_TEST_INFO_TEMP.NAME%TYPE; PROPERTY_NAME_1 DM_TEST_INFO_TEMP.DM_NAME%TYPE; BEGIN SP_STR(C1); LOOP BEGIN EXIT WHEN C1%NOTFOUND; FETCH C1 INTO DATA_DT_1,INVESTOR_ID_1,PROPERTY_NAME_1; DBMS_OUTPUT.PUT_LINE(DATA_DT_1||','||INVESTOR_ID_1||','||PROPERTY_NAME_1); END; END LOOP; EXCEPTION WHEN OTHERS THEN DELETE FROM DM_TEST_INFO_TEMP; commit; DBMS_OUTPUT.PUT_LINE(SQLERRM); END; / --结果 SQL> DECLARE C1 SYS_REFCURSOR; DATA_DT_1 DM_TEST_INFO_TEMP.ID%TYPE; INVESTOR_ID_1 DM_TEST_INFO_TEMP.NAME%TYPE; PROPERTY_NAME_1 DM_TEST_INFO_TEMP.DM_NAME%TYPE; BEGIN SP_STR(C1); LOOP BEGIN EXIT WHEN C1%NOTFOUND; FETCH C1 INTO DATA_DT_1,INVESTOR_ID_1,PROPERTY_NAME_1; DBMS_OUTPUT.PUT_LINE(DATA_DT_1||','||INVESTOR_ID_1||','||PROPERTY_NAME_1); END; END LOOP; EXCEPTION WHEN OTHERS THEN DELETE FROM DM_TEST_INFO_TEMP; commit; DBMS_OUTPUT.PUT_LINE(SQLERRM); END; / 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1,dm01,DMHS 1,dm01,DWRWC 1,dm01,DMDSC 1,dm01,DMMPP 1,dm01,DMDW 1,dm01,DMDTS 1,dm01,DMDTS PL/SQL procedure successfully completed
复制
利用DTS开始迁移
验证是否成功:
DM很好的兼容了Oracle存储过程语法
达梦技术社区:https://eco.dameng.com
最后修改时间:2022-07-15 10:43:38
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
SQLark V3.4 更新 | 百灵说,PG 和春天一起来了!
达梦数据
47次阅读
2025-04-17 10:41:51
达梦数据共享集群在湖北银行绩效考核系统上线
达梦数据
39次阅读
2025-04-23 11:19:07
权威双认达梦实力丨武汉数博会秀创新成果,行业峰会斩获三省殊荣
达梦数据
36次阅读
2025-04-24 09:53:34
达梦数据2024年年度报告正式发布
达梦数据
27次阅读
2025-04-15 09:49:32
全民国家安全教育日|守护数据堡垒 筑牢安全防线
达梦数据
23次阅读
2025-04-15 09:49:33
达梦数据加入“可信数据空间发展伙伴计划”
达梦数据
17次阅读
2025-04-25 10:10:11
达梦数据2025年第一次投资者交流会成功召开
达梦数据
14次阅读
2025-05-06 10:21:10
七载征程,图启新章 | 蜀天梦图七周年:以自主之“图”,绘就数字未来
达梦数据
13次阅读
2025-04-28 10:18:37
湖北日报:达梦数据要让中国数据库成全球“首选”
达梦数据
10次阅读
2025-05-08 10:02:50
达梦数据X久其金建 以安全高效智能方案革新企业EPM
达梦数据
10次阅读
2025-04-25 10:10:10