1、选择源头数据库的表、鼠标右击、选择导出数据

2、在数据转化弹框中,双击 ‘数据库,数据表’ 那一栏

3、选择目标数据库,调整字段类型映射关系

4、调整字段的映射关系

目前遇到的字段类型,只有 int,bigint   转  number  类型

再就是VARCHAR2 长度不够的,加长度,超过4000的就改为clob类型

5、勾选‘打开新连接’,‘选择行计数’

6、点击开始

7、注意事项

A、如果是Oracle转Oracle,同类型的数据库迁移,就不用管字段类型的映射关系了

B、如果字段的映射不对就会报错,或者表创建了,但数据没有进去

C、遇到的字段类型,只有 int,bigint   转  number  类型

D、有些字段迁移后会变成小写,需要后面手动调整

可以用SQL查询出所有的小写字段

select column_name,table_name from user_tab_columns where regexp_like(column_name,'[a-z]');

E、VARCHAR2(200)  类型可能存在 实际长度大于限制长度的问题,会报错出来

超过4000的长度,可以改为  clob 类型

F、VARCHAR2 类型如果没有限制长度,会报错:“缺少括号”,加就可以了 VARCHAR2(200)

G、数据迁移后,对比两个数据库表的数量,可以使用SQL查询数量

H、表迁移后,发现索引都没有迁移

导致登录的时候报错:

java.lang.IllegalArgumentException: obj is null

处理方式:迁移索引后,问题就自动好了

8、处理方式总结

A、导出时,可以批量的处理,比如一次处理10个表,遇到报错就停止执行,这样后面再处理报错的表就可以了,其他表会都迁移了。报错的表需要删除了,从新迁移。删除表后,需要刷新数据库。

B、批量迁移索引

使用SQL 查询出SQL server 所有创建索引的语句。下面是SQL

WITH indexInfo as (
    SELECT SCHEMA_NAME(t.schema_id) [schema_name],t.name as [table_name],t1.name as [index_name]
    ,t1.type,t1.type_desc,t1.is_unique,t1.is_primary_key,t1.is_unique_constraint,t1.has_filter,t1.filter_definition
    ,STUFF((SELECT ','+t4.name FROM sys.sysindexkeys t2 
        inner join sys.index_columns  t3 ON t2.id=t3.object_id and t2.indid=t3.index_id and t2.colid=t3.column_id
        inner join sys.syscolumns t4 ON t2.id=t4.id and t2.colid=t4.colid
        WHERE t2.id=t1.object_id and t1.index_id=t2.indid  and t2.keyno <> 0 ORDER BY t3.key_ordinal FOR XML PATH('')),1,1,'') AS index_cols
    ,STUFF((SELECT ','+t4.name FROM sys.sysindexkeys t2 
        inner join sys.index_columns  t3 ON t2.id=t3.object_id and t2.indid=t3.index_id and t2.colid=t3.column_id
        inner join sys.syscolumns t4 ON t2.id=t4.id and t2.colid=t4.colid
        WHERE t2.id=t1.object_id and t1.index_id=t2.indid  and t2.keyno = 0 ORDER BY t3.key_ordinal FOR XML PATH('')),1,1,'')  AS include_cols
    FROM sys.tables as t
    inner join sys.indexes as t1 on (t1.index_id > 0 and t1.is_hypothetical = 0) and (t1.object_id=t.object_id)
    WHERE t1.type in(1,2)
), indexInfo2 AS (
SELECT * ,(CASE 
    WHEN is_primary_key = 1 
        THEN 'alter table '+[schema_name]+'.'+[table_name]+' add constraint '+[index_name]+' primary key '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+'('+index_cols+');'
    WHEN is_unique = 1 AND is_unique_constraint = 1 
        THEN 'alter table '+[schema_name]+'.'+[table_name]+' add constraint '+[index_name]+' unique '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+'('+index_cols+');'
    WHEN is_unique = 1 AND (is_primary_key = 0 OR is_unique_constraint = 0)
        THEN 'create unique '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+' index '+[index_name]+'  on '+[schema_name]+'.'+[table_name]+'('+index_cols+');'
    ELSE 'create '+(CASE WHEN [type]=1 THEN 'clustered' ELSE 'nonclustered' END)+' index '+[index_name]+' on '+[schema_name]+'.'+[table_name]+'('+index_cols+') ;'
    END) script
FROM indexInfo
) SELECT [schema_name],[table_name],[index_name],script
+(CASE WHEN include_cols IS NOT NULL THEN ' include('+include_cols+')' ELSE '' END)
+(CASE WHEN has_filter = 1THEN ' where '+filter_definition ELSE '' END)
FROM indexInfo2
ORDER BY [schema_name],[table_name],[type],[index_name],is_primary_key DESC,is_unique_constraint DESC,is_unique DESC

C、批量处理语句后(两种数库的DDL语句有所差异),可以批量执行。

可以全部一起执行,或者一次执行50条语句,遇到报错就停止,报错前的语句都执行了,就可以删除了。处理报错后,再执行报错后面的语句。

有些不好处理的报错,可以先不管,后面在手动对表建索引就可以了

批量执行DDL语句的方式

新开个窗口放DDL语句,SQL编辑器 --> 执行SQL脚本

注意事项:

SQL SERVE 迁移到 ORACLE  后,在 ‘数据库表管理’ 页面做表创建的时候,DDL语句会报错,因为字段都是小写,且都加了引号,导致Oracle不能识别。需要删除  D:\03_workspace\01_fenghua\02_server\fenghua-tmp-server\src\main\java\xyz\elidom\dbist\ddl\impl\DdlJdbc.java   文件,删除后重启后端,就可以了,

后面生成的DDL语句,字段就没引号了,Oracle就可以正常创建表了。

Dbeaver做数据迁移相关推荐

  1. mysql errno : 1146_MySQL_MySQL复制出错 Last_SQL_Errno:1146的解决方法,背景:我们在做数据迁移或者 - phpStudy...

    MySQL复制出错 Last_SQL_Errno:1146的解决方法 背景:我们在做数据迁移或者拆分的时候,使用Tablespace transcation 这种解决方案时,很有可能就会遇到 从库复制 ...

  2. 阿里言:出乎意料,“字节跳动”居然是这么做数据迁移的

    目标 附面试思维导图: 能够描述项目数据迁移的方案 了解hbase的特点 能够熟悉数据迁移中的数据包装和转换 能够完成文章数据的全量和增量迁移 能够完成热点文章数据的迁移 1 为什么需要自动同步 因为 ...

  3. 【大厂技术内幕】字节跳动原来是这么做数据迁移的!

    数据迁移 目标 能够描述项目数据迁移的方案 了解hbase的特点 能够熟悉数据迁移中的数据包装和转换 能够完成文章数据的全量和增量迁移 能够完成热点文章数据的迁移 1 为什么需要自动同步 因为MySQ ...

  4. 一种可以避免数据迁移的分库分表scale-out扩容方式

    原文地址:http://jm-blog.aliapp.com/?p=590 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月 ...

  5. 我在MongoDB年终大会上获二等奖文章:由数据迁移至MongoDB导致的数据不一致问题及解决方案...

    作者 | 上海小胖 来源 | Python专栏(ID:xpchuiit) 故事背景 企业现状 2019年年初,我接到了一个神秘电话,电话那头竟然准确的说出了我的昵称:上海小胖. 我想这事情不简单,就回 ...

  6. 数据迁移(数据清洗)分享

    笔者2013年接了一个资源管理咨询项目,负责该项目的实施管理,其中有几个月是组织几个开发厂家写迁移脚本,做数据迁移(从原有的多个系统中把数据同步过来),仅分享当时的经验. 前期先做基础数据梳理和映射确 ...

  7. sql语句在navicat中可以查询到所有数据但是在idea程序中不行_数据迁移测试实施方案...

    点击关注,我们共同每天进步一点点! 最近经历了一场大型的数据迁移测试,因为以前对数据迁移测试研究甚少,所以对测试实施方案的制定非常的棘手,在网上也查询了很多,发现相关资料很少,并且大部分都是一些理论指 ...

  8. 【Oracle 数据迁移】环境oracle 11gR2,exp无法导出空表的表结构【转载】

    今天做数据迁移,但是发现有些空表无法exp,后来找到问题所在. [原文]:http://www.cnblogs.com/wenlong/p/3684230.html 11GR2中有个新特性,当表无数据 ...

  9. 一个月黑风高的夜晚紧急完成gitlab服务器数据迁移

    文章目录 前言 修复过程 备份数据 修改存放目录 关闭服务 迁移数据 刷新配置 启动服务 总结 前言 真是无巧不成书,白天刚刚讨论了一天 SVN 服务器迁移事情,晚上突然被告知 gitlab 服务无法 ...

最新文章

  1. 明明知道银行存款会贬值,为什么还有那么多人把钱放在银行?
  2. vue调用百度地图API
  3. python是强定义语言吗_python是强类型语言吗
  4. 前端开发使用react实现简易路由
  5. React 事件处理函数
  6. mysql按条件提取数据库_UIPath中级系列一之读取MySQL记录集
  7. 串口驱动程序_实战microPython(09) 串口UART的使用(下)
  8. 《东周列国志》第四十九回 公子鲍厚施买国 齐懿公竹池遇变
  9. pagesize==0异常问题
  10. 自古逢秋悲寂寥,奈何今秋热成雕?Python使用Pyecharts统计全国温度Top10并绘图
  11. 实变函数自制笔记9:勒贝格积分的极限定理
  12. 画二元函数即三维图像的函数及matlab代码
  13. 升级工作环境并支持C++17
  14. FIR滤波器结合快速卷积滤波
  15. vbox虚拟机网络设置
  16. 大数据开发岗面试30天冲刺 - 日积月累,每日五题【Day01】——Hive1
  17. reapair oracle,并行查询的 PX Deq: reap credit 等待
  18. 程序员跳槽一次到底能涨多少?今天带你见识下跳槽天花板
  19. 手机、手环NFC刷门禁卡
  20. C# CultureInfo列表详细说明

热门文章

  1. 射频安全-利用HackRF实现GPS欺骗
  2. 蓝牙BLE 概念(一)
  3. 继续加油~,用这一款工具帮助更多的Cocos3D团队。
  4. SSM框架——Mybatis增删改查
  5. 基于Java实现QQ登录和微博登录
  6. HTML/CSS速写神器Emmet
  7. 战网登录-战网选择国家-战网battle.net问题解决
  8. 数字中台全云化,抓住中国新型消费提质升级重要窗口期
  9. 市场重回“振动模式”-猜不中大盘涨跌?我们还可以试试波动率交易
  10. 弱视能学计算机应用技术,弱视