如何从把mysql的数据迁移到oracle上来---------Oracle SQL Developer技术

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中来



有疑问可留言,嘿嘿,马上就放假过年了


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuyunshengsir

微信:lys20191020

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值