1.安装Oracle SQL Developer和所需jdk(自己百度)不然会出现
2.设置首选项的时间
3.需要一个权限很多的中间Oracle数据库作为媒介,让mysql数据库生成转换模型
添加mysql数据源
添加oracle为中间介质
4.选择mysql,右键捕获模型,然后断开oracle,重新连接在捕获的模型就会出现
4.右键捕获模型,选择转化为oracle数据模型,则会出现
5.右击某个表,选择生成(test01是数据库名和数据库密码,ddd是表)
SET SCAN OFF;
PROMPT Creating User test01 ...
CREATE USER test01 IDENTIFIED BY test01 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
GRANT CREATE SESSION, RESOURCE, CREATE VIEW TO test01;
connect test01/test01;
create or replace PACKAGE mysql_utilities AS
identity NUMBER(10);
END mysql_utilities;
/
/
-- DROP SEQUENCE ddd_id_SEQ;
PROMPT Creating Sequence ddd_id_SEQ ...
CREATE SEQUENCE ddd_id_SEQ
MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE ;
-- DROP TABLE ddd CASCADE;
PROMPT Creating Table ddd ...
CREATE TABLE ddd (
id NUMBER(10,0) NOT NULL
);
PROMPT Creating Primary Key Constraint PRIMARY on table ddd ...
ALTER TABLE ddd
ADD CONSTRAINT PRIMARY PRIMARY KEY
(
id
)
ENABLE
;
connect test01/test01;
CREATE OR REPLACE TRIGGER ddd_id_TRG BEFORE INSERT OR UPDATE ON ddd
FOR EACH ROW
DECLARE
v_newVal NUMBER(12) := 0;
v_incval NUMBER(12) := 0;
BEGIN
IF INSERTING AND :new.id IS NULL THEN
SELECT ddd_id_SEQ.NEXTVAL INTO v_newVal FROM DUAL;
-- If this is the first time this table have been inserted into (sequence == 1)
IF v_newVal = 1 THEN
--get the max indentity value from the table
SELECT max(id) INTO v_newVal FROM ddd;
v_newVal := v_newVal + 1;
--set the sequence to that value
LOOP
EXIT WHEN v_incval>=v_newVal;
SELECT ddd_id_SEQ.nextval INTO v_incval FROM dual;
END LOOP;
END IF;
-- save this to emulate @@identity
mysql_utilities.identity := v_newVal;
-- assign the value from the sequence to emulate the identity column
:new.id := v_newVal;
END IF;
END;
/
6.在连接oracle后情况下,运行代码,然后建立新的数据库连接
7.在转换的模型中右键选择移动数据,则会把mysql中的数据转移到test01中来
有疑问可留言,嘿嘿,马上就放假过年了