精华内容
下载资源
问答
  • 有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle。 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面。 当然,Navicat的数据库迁移无法做到...

    有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle。

    很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面。

    当然,Navicat的数据库迁移无法做到完美,一些依赖数据库特征,人无我有的内容是无法迁移的,例如Oracle的存储过程、序列、MySQL的自增字段等。

    木头大哥做过测试,Oracle的Date字段也是在一定条件下才能迁移成功的。

    以下是从Oracle迁移到SQL Server的步骤:

    1.首先安装Oracle和SQL Server

    此处忽略安装步骤

    2.安装Navicat

    此处忽略安装步骤

    3.建好Oracle数据库名为framework的Schema,并建好表录入好数据;在SQL Server里新建数据库framework。然后在Navicat里面配置好Oracle连接和SQL Server连接,例如:

    image

     

    image

     

    4.点击工具->数据传输

    image

    5.选择数据源和目标,注意其中数据库和模式的选择,

    image

    6.Navicat开始传输数据了,数据量不大的数据库,很快就传输完成。最后汇报:Finished – successfully

     

    image

     

    如果中途传输出错,或许修改几个字段的类型定义就传输通过了,需要耐心解决问题。幸好耐心就是IT江湖人士的常见美德。

    最后,如上所述,一些依赖数据库特征,人无我有的内容是无法迁移的。

    Oracle没有自增字段,传输到SQL Server后可以将id转换为自增字段。

    大功告成!

    以此类推,如何把数据从MySQL迁移到SQL Server、从MySQL迁移到Postgre SQL、从Oracle迁移到MariaDB、SQLServer迁移到SQLite,你懂的。

    (一些工具的下载地址 http://pan.baidu.com/s/1X9xDk)

    原文链接:https://www.cnblogs.com/hellowood23/p/5111912.html

    展开全文
  • 有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle。 很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面。 当然,Navicat的数据库迁移无法做到...

    有时候我们有迁移数据库的需求,例如从Oracle迁移到SQL Server,或者从MySQL迁移到Oracle。

    很多江湖好汉一时不知如何手工操作,所幸的是Navicat提供了迁移的自动化操作界面。

    当然,Navicat的数据库迁移无法做到完美,一些依赖数据库特征,人无我有的内容是无法迁移的,例如Oracle的存储过程、序列、MySQL的自增字段等。

    木头大哥做过测试,Oracle的Date字段也是在一定条件下才能迁移成功的。

    以下是从Oracle迁移到SQL Server的步骤:

    1.首先安装Oracle和SQL Server

    此处忽略安装步骤

    2.安装Navicat

    此处忽略安装步骤

    3.建好Oracle数据库名为framework的Schema,并建好表录入好数据;在SQL Server里新建数据库framework。然后在Navicat里面配置好Oracle连接和SQL Server连接,例如:

    image

     

    image

     

    4.点击工具->数据传输

    image

    5.选择数据源和目标,注意其中数据库和模式的选择,

    image

    6.Navicat开始传输数据了,数据量不大的数据库,很快就传输完成。最后汇报:Finished – successfully

     

    image

     

    如果中途传输出错,或许修改几个字段的类型定义就传输通过了,需要耐心解决问题。幸好耐心就是IT江湖人士的常见美德。

    最后,如上所述,一些依赖数据库特征,人无我有的内容是无法迁移的。

    Oracle没有自增字段,传输到SQL Server后可以将id转换为自增字段。

    大功告成!

    以此类推,如何把数据从MySQL迁移到SQL Server、从MySQL迁移到Postgre SQL、从Oracle迁移到MariaDB、SQLServer迁移到SQLite,你懂的。

    (一些工具的下载地址 http://pan.baidu.com/s/1X9xDk)

    露气寒光集,微阳下楚丘。
    猿啼洞庭树,人在木兰舟。
    广泽生明月,苍山夹乱流。
    云中君不见,竟夕自悲秋。

    木头大哥所发的文章均基于自身实践,各位江湖好汉可以通过:hellowood23@163.com 联系之。

    转载于:https://www.cnblogs.com/hellowood23/p/5111912.html

    展开全文
  • 项目要求将Oracle中数据迁移到mysql中,采用dataX,mysql的存储过程实现的。 数据结构: 数据源层(Oracle) 备份层(mysql) 映射层(mysql) 项目实际可操作性:数据库备份,回退脚本,数据验证 主要内容: ...

    项目要求将Oracle中数据迁移到mysql中,采用dataX,mysql的存储过程实现的。

    数据结构:

    数据源层(Oracle)

    备份层(mysql)

    映射层(mysql)

    项目实际可操作性:数据库备份,回退脚本,数据验证

    主要内容:

    第一次上线:

           1.远程操作安装dataX,需要配置conf来确定日志通过时间目录划分表名作为每张表的文件名。

           2.通过dataX将Oracle数据传输到mysql中,传输两种形式的数据,第一种全量数据直接导入,第二种是根据任务号字段的枚举值标记已完成的和该任务相应时间字段在dataX写入过滤条件实施传输。

            3.对mysql进行备份,防止第二次上线用dataX进行传输时无法回退。

    第二次上线:

            1.仍然通过dataX将Oracle数据传输到mysql中,传输两种形式的数据,第一种是将两次上线之间时间段完成的任务号导入到mysql中,第二种整个Oracle库中未完成的任务数据进行传输。

            2.上述过程将整个Oracle数据传输至被备份层中,接下来是实现字段映射,新的系统中是在原有老系统中添加不少新功能,所以字段映射分为两种,一种是原表全字段映射,一种是多表部分字段映射到一张表中。这个过程中采取的是mysql的存储过程实现,通过每个任务所属分公司,按分公司分批次调用。所以,此时存在第一次调用某个分公司,再调用另一个分公司出错,必须要有回退脚本,回退脚本有两种方式,一种写一个存储过程来根据分公司删除其中数据,通过调用这个存储过程输入分公司实现,第二种在执行分公司调用脚本时,前面加入关闭事务,结束时加入打开事务。

            3.在上述存储过程中植入了,每张表的映射来源,字段名,哪几张张表,映射前后的数据条数,用来验证映射前后是否出现数据丢失。

          4.随机验证脚本,随机抽取每张新表是三条数据,通过任务号对比映射前后数据值是否一致。

     

     

     

    展开全文
  • 1.关于字符串拼接问题? 例如Oracle中某段字符创拼接如下:  v_str := substr(v_resource_ids,  1,  instr(v_resource_ids, ',' || resource_id || ',')) ||  substr(v_resource_id

    1.关于字符串拼接问题?

    例如Oracle中某段字符创拼接如下:

     v_str := substr(v_resource_ids,
                        1,
                        instr(v_resource_ids, ',' || resource_id || ',')) ||
                 substr(v_resource_ids,
                        instr(v_resource_ids, ',' || resource_id || ',') +
                        length(',' || resource_id || ','));

    那么到Mysql中修改为如下就OK了;

     set v_str = concat_ws(substr(v_resource_ids,
                        1,
                        instr(v_resource_ids, concat_ws(',' , resource_id , ','))) ,
                 substr(v_resource_ids,
                        instr(v_resource_ids, concat_ws(',' , resource_id , ',')) +
                        length(concat_ws(',' , resource_id , ','))));

    注释:

    使用方法:
    CONCAT(str1,str2,…)  

    返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

    使用方法: 
    CONCAT_WS(separator,str1,str2,...)

    CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
    注意:
    如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

    详细解释请参照博客:http://blog.163.com/yang_jianli/blog/static/16199000620110135214700/

    2.关于显示记录的行数问题?

    在Oracle中这样表示即可:

           SELECT nsrsbh
           from ctais_dj_nsrxx
           where rownum < 40
           order by nsrsbh asc;

    在Mysql中如下表示即可:

           select nsrsbh
            from ctais_dj_nsrxx 
            where @num < 40
            order by nsrsbh asc;

    3.关于返回值的问题?

    在Oracle中如下表示

    ret_str :='';
         if fpmxdzstr is null then
            ret_str:='';
            return;
         end if;
           v_temp :=fpmxdzstr;

    在Mysql中这样表示

    lable:begin
         set ret_str ='';
         if fpmxdzstr is null then
            set ret_str ='';
            leave lable;
         end if;
           set v_temp :=fpmxdzstr;
    end lable;

    注释:

    也可以给区块起别名,如:
    lable:begin
    ...........
    end lable;
    可以用leave lable;跳出区块,执行区块以后的代码

    关于存储过程不错的博客:http://blog.csdn.net/lpz283929516/article/details/4386258

    4.关于循环的问题?

    例如在Oracle中循环用 while ...loop...end loop

    在Mysql中则用while...do...end while

    注释:参考博客:http://blog.sina.com.cn/s/blog_4f925fc30100mw2l.html

    5.关于Oracle中的序列的问题?

    在oracle中有序列,但在mysql中没有序列,怎么办?

     BEGIN
    declare t_id varchar(100);

    set t_id = substr((select max(id) from report_compare_list),8);

    select t_id;
    END

    6.关于删除语句的表别名问题?

    在oracle中删除一条语句的时候,我可以给表起别名,如下所示:

    delete from ABC a where a.id=id;

    在MySQL中删除一条语句的时候,不能给表起别名,否则会出错,语句如下:

    delete from ABC  where id=i.id;

    如果想给表起别名也可以,如下书写

    deletea from ABC a where a.id=id;

    7.关于if...else...elsif...end if问题?

    在Oracle中:if...else...elsif...end if

    在MySQL中:if...else...elseif...end if

    8.关于now(),sysdate问题?

    在oracle中获取当前时间用sysdate

    在mysql中获取当前时间用now()


    展开全文
  • 例如Oracle中某段字符创拼接如下: v_str := substr(v_resource_ids, 1, instr(v_resource_ids, ‘,’ || resource_id || ‘,’)) || substr(v_resource_ids, instr(v_resource_ids, ‘,’ || resource_id || ‘,’)...
  • 按照客户需求,我们在mysql上做的网站要迁移到oracle上去,通过一个软件数据表到是全转过去了,可是存储过程没有,大神们给支支招!新人发帖,求支持!!!
  • oracle导出.sql文件(Navicat Premiu 11.0.8 无法实现oracle到mysql的数据传输亲测有效) exp username/pass@数据局地址ip:1521/orcl file=d:\WSRZ.sql log=d:\WSRZ.log full=y PowerDesigner转为mysql认可的...
  • PAGE / NUMPAGES 转载 最近公司一个项目需要将 数据库进行一次迁移oracle到 mysql,网上资料甚少现将我本次迁移过程中所遇到的一些问题总结于此(主要是 存储过程迁移)希望能给自己做一个日后的参考如果有幸能...
  • 最近公司一个项目需要将数据库进行一次迁移,从oracle到mysql,网上资料甚少,现将我本次迁移过程中所遇到的一些问题总结于此(主要是存储过程迁移),希望能给自己做一个日后的参考,如果有幸能帮助到大家更好。...
  • Oracle,SQL Server迁移到MySQL 一些变化 不再使用存储过程、视图、定时作业 表结构变更,如采用自增id做主键,以及其他语法变更 业务SQL改造,不使用窗口函数、CTE等功能 制定MySQL业务开发规范 数据...
  • 这里写目录标题1 达梦迁移工具使用测试1.1 环境1.2 测试oracle迁移到dm1.3 查看达梦数据库,验证数据是否同步1.4 补充 1 达梦迁移工具使用测试 DM数据迁移工具支持: DM数据库之间模式、表、序列、视图、存储过程/...
  • 昨天晚上帮一个朋友处理了一个关于存储过程的问题,他需要迁移一些Oracle中的存储过程到MySQL中来,但是改了一部分的程序,发现MySQL中没法编译了,报了很多的错误。 这个问题也比较典型,自己就趁热打铁总结了一下...
  • Kettle7.0实现oracle到mysql数据库迁移

    千次阅读 2018-05-31 16:10:00
    kettle的数据抽取主要在于抽取数据,而没有考虑数据库的函数、存储过程、视图、表结构以及索引、约束等等,如果想对这些内容进行迁移,就需要通过写脚本或者更改kettle源码的方式实现了。 二、Kettle下载运行 ...
  • Oracle数据库到MySQL数据库迁移过程中的一大难题就是主键生成策略的替换. 如果之前的程序中使用Oracle的Sequence机制来实现主键的自增的话. MySQL中需要使用TableGenerator进行等价替换.替换的时候, 主要有三个地方...
  • 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据迁移到MySQL。下面是小编日常整理的一种sqlserver数据库迁移的方法。 一、SQL Server中常...
  • 昨天晚上帮一个朋友处理了一个关于存储过程的问题,他需要迁移一些Oracle中的存储过程到MySQL中来,但是改了一部分的程序,发现MySQL中没法编译了,报了很多的错误。...
  • 前言这篇文章验证的功能,可能在目前大部分日常工作中遇不,就权当作是体验性的DEMO。部分功能如果后面来得急的话...存储过程mysql 里面不好使~~ 大数据的存储 第一点这个还好做,网上大把工具(或者自己写个工具)
  • Mysql数据库中将表的数据迁移到另一个表怎么做? Mysql数据库中存储过程脚本结构? Mysql数据库中存储过程中的变量定义、赋值、改变? Mysql数据库中存储过程中的IF判断? Mysql数据库中存储过程中的LOOP循环? ...
  • 因为目前项目要进行迁库,对于存储过程迁移有点难,企业原先的旧架构已经很老了,涉及存储过程很多,每一个存储过程的逻辑也很复杂,从Oracle到GBase库,很多不同之处,不适配很难操作;所以开始将Oracle和...
  • SQL server 数据迁移到mysql

    千次阅读 热门讨论 2015-05-31 21:28:49
    刚加入的新项目才刚刚起步,很多技术还没有真正定型,本来组长决定是用SQL server 的,这几天也在忙着数据库设计,建表,写存储过程,感觉轻车熟路,但是昨天跟着组长去参加我们这个项目的研讨会,用SQL server的...
  • 达梦数据库数据迁移同步工具 DTS 将原系统中结构化数据迁移到国产化数据库,源端数据库支持 Oracle、达梦、 Mysql 等国内外多种关系型数据库管理系统,目的端数据库支持国产化数据库: DM 数据库之间模式、表、序列...
  • 可以将oracle sql dump转换为与mysql兼容的sql的软件该软件帮助您轻松快速地从oracle迁移到myslq 运作方式 它会读取由oracle制成的sql文件 寻找所有“创建表”并将它们放在第一个sql文件中(这是为了避免可能需要...
  • mysql迁移到达梦 DTS的简介 DM数据迁移工具提供了主流大型数据库迁移到DM、DM迁移到...主流大型数据库Oracle、SQLServer、MySQL、DB2、PostgreSQL、Informix、Kingbase、Sybase的模式、表、视图、序列、索引迁移到D
  • 目录 需求描述 表结构和数据转移 ...函数和存储过程迁移 创建函数范例 创建存储过程范例 视图迁移 创建视图范例 序列迁移 MySQL实现Oracle序列 数据库备份 发客户那遇到的问题及解决 总结 需求...
  • 我遇到的问题是pg数据库自定义函数和存储过程的问题。 首先是mysql的自定义函数: DROP FUNCTION IF EXISTS `getAreaChildList`; DELIMITER ;; CREATE DEFINER=`root`@`%` FUNCTION `getAreaChildList`(`areaId` ...
  • mysql实现oracle序列

    2019-07-11 13:32:07
    迁移mysql后,某些需要提前拿自增序列并增加自增序列的场景在msyql中就不支持了 一. 实现方案:编写存储过程 存储过程编写 -- 函数说明 -- get_now_and_seize( -- 入参:表名(varchar), -- 入参:占多少个,...

空空如也

空空如也

1 2 3 4
收藏数 67
精华内容 26
关键字:

存储过程oracle迁移到mysql

mysql 订阅