Dbeaver做数据迁移

article/2025/10/12 8:35:50

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就可以正常创建表了。

        


http://chatgpt.dhexx.cn/article/fnvVIm3k.shtml

相关文章

dbeaver工具连接达梦数据库

、一 概述 DBeaver 是一个基于 Java 开发&#xff0c;免费开源的通用数据库管理和开发&#xff0c;DBeaver 采用 Eclipse 框架开发&#xff0c;支持插件扩展&#xff0c;并且提供了许多数据库管理工具&#xff1a;ER 图、数据导入/导出、数据库比较、模拟数据生成等&#xff0…

DBeaver 格式化sql

有时候我们拿到了一条sql语句是长长的&#xff0c;非常不容易阅读&#xff0c;这时我们就想说哪里可以格式下sql代码。 方法有很多种&#xff0c;这里我就用Dbeaver来格式化sql。 ①打开Dbeaver ②复制sql代码到SQL编辑器中&#xff0c;并选中 ③按ctrlshiftF&#xff0c;即…

【DBeaver】常用自定义设置

文章目录 背景一、用户界面设置1.1、22.3.4版本1.1.1、SQL编辑器-字体设置1.1.2、查询结果-字体设置 1.2、23.0.0版本1.2.1、应用字体&#xff08;导航栏等&#xff09;1.2.2、文本字体&#xff08;SQL输出、文本编辑器等&#xff09; 二、常规设置2.1、连接类型设置/环境设置 …

DBeaver导入Excel数据

目录 前言 导入准备 ​导入步骤 1.选中数据库表&#xff0c;右键&#xff0c;然后点击导入数据 2.双击CSV,选择待导入的文件 3.修改编码格式&#xff08;可选&#xff0c;不乱码不用&#xff09; 4.点击下一步&#xff0c;修改列的类型 5.一直下一步&#xff0c;点击…

Dbeaver基本使用

1&#xff1a;与plsql相比&#xff0c;Dbeaver没有右击直接查看表注释的功能&#xff0c;但是Dbeaver提供了一个“打开声明”的功能&#xff0c;里面可以查看一些比较实用的内容&#xff1a;表列注释、创建该表的create语句&#xff1a; 2&#xff1a;在一般开发的情况下&#…

【大数据】Hive可视化工具dbeaver

Hive可视化工具dbeaver 1、dbeaver基本介绍 dbeaver是一个图形化的界面工具&#xff0c;专门用于与各种数据库的集成&#xff0c;通过dbeaver我们可以与各种数据库进行集成通过图形化界面的方式来操作我们的数据库与数据库表&#xff0c;类似于我们的sqlyog或者navicat。 2、…

DBeaver安装及使用手册

一、DBeaver安装 1、在[DBeaver官网](https://dbeaver.io/download)进行数据库工具下载&#xff0c;下载好后双击运行2、选择语言后&#xff0c;点击OK 3、点击下一步 4、接受许可 5、选择可使用者&#xff0c;然后点击下一步 6、选择组件&#xff0c;一般选择默认即可 7…

DBeaver-Driver-All ( DBeaver驱动包,所有JDBC驱动整合包)

DBeaver-Driver-All DBeaver-Driver-All ( DBeaver驱动包 )整合所有DBeaver的JDBC驱动包&#xff0c;供DBeaver使用&#xff0c;无需每次都搜索和下载&#xff0c;只需clone本项目即可&#xff0c;一个包包含几乎所有的驱动&#xff0c;如果有缺漏的驱动欢迎提Issue补充。 DBe…

DBeaver 下载安装

1 下载地址(我下载的 Windows版本&#xff0c;根据系统需要选择版本) Releases dbeaver/dbeaver GitHubFree universal database tool and SQL client. Contribute to dbeaver/dbeaver development by creating an account on GitHub.https://github.com/dbeaver/dbeaver/rel…

DBeaver 安装

DBeaver 目录 DBeaver1、介绍2、发展史3、版本介绍4、下载与安装5、DBeaver 连接数据库&#xff08;MySql&#xff09;6、DBeaver 连接数据库&#xff08;Hive&#xff09;7、DBeaver 功能简介 1、介绍 DBeaver是一种通用数据库管理工具&#xff0c;适用于需要以专业方式使用数…

DBeaver驱动安装

最近打算用DBeaver它来查看SQLite文件&#xff0c;需要安装驱动&#xff0c;总是安装不上有点苦恼 下载驱动的时候可能会出现如下提示&#xff1a; Can’t create driver instance Error creating driver ‘SQLite’ instance. Most likely required jar files are missing. …

使用 DBeaver 导入数据

如何上传数据 在开始使用 DBeaver 之前&#xff0c;用户 以 excel 格式收集了有关电视剧的信息。他的文件已经包含所有必要的列&#xff0c;但我们的英雄不想将其中一些列传输到数据库&#xff0c;因为它们是为他个人使用而创建的&#xff0c;与站点访问者无关。要仅快速加载网…

Dbeaver配置迁移

换电脑了,希望Dbeaver中的连接也一起带过去 但在Dbeaver中找了一圈,没找到可以导出配置的功能 搜了一圈资料并自己尝试,发现配置文件保存在两个文件中,只要把老电脑的这两个文件换到新电脑中就能迁移数据库连接配置

DBeaver 超级详细的安装与使用

一、下载DBeaver DBeaver是一种通用数据库管理工具&#xff0c;适用于需要以专业方式使用数据的每个人&#xff1b;适用于开发人员&#xff0c;数据库管理员&#xff0c;分析师和所有需要使用数据库的人员的免费(DBeaver Community) 的多平台数据库工具。 DBeaver支持80多个数据…

DBeaver安装与使用教程(超详细安装与使用教程)

文章预览&#xff1a; DBeaver安装与使用教程&#xff08;超详细安装与使用教程&#xff09;一、DBeaver安装教程①下载地址②图文安装教程 二、DBeaver使用教程①mysql数据库为例1>填写数据库信息2>常用基本功能 DBeaver安装与使用教程&#xff08;超详细安装与使用教程…

DBeaver下载安装教程

一、简单介绍 DBeaver是一款很好用的数据库连接工具&#xff0c;免费的&#xff0c;支持100多种数据库&#xff08;基本上看得见的数据库不管是关系型还是非关系型的都可用&#xff09; 不过可能需要下载驱动&#xff0c;如果驱动下载不了&#xff0c;连接失败&#xff0c;则…

dbeaver(下载、安装图文过程)

能够帮助你们解决问题是博主的荣幸&#xff0c;你们的支持是我创作的最大动力&#xff01;:)欢迎关注点赞 文章目录 一、dbeaver下载二、dbeaver安装总结 一、dbeaver下载 提示&#xff1a;安装之前需要先确认好自己需要哪个版本的maven&#xff0c;避免浪费时间。 官网下载&am…

DBeaver连接mysql数据库图文教程

文章目录 前言一、DBeaver连接mysql数据库二、文档下载地址 前言 DBeaver是免费、开源、通用数据库工具&#xff0c;是许多开发开发人员和数据库管理员的所选。下面详细介绍Dbeaver连接mysql数据库的过程。 一、DBeaver连接mysql数据库 1、 打开Dbeaver后&#xff0c;按下图…

DBeaver详细使用

DBeaver使用 DBeaver使用相关快捷键数据库表的相关操作界面修改表结构生成相关SQL语句 数据库连接常用类型数据库连接查看已连接数据库相关信息 DBeaver使用 相关快捷键 新增sql编辑页面&#xff1a;ctrl】执行sql语句&#xff1a;CtrlENTERDbeaver提供了“功能模板”&#x…

DBeaver的使用

1.介绍 dbeaver是免费和开源&#xff08;GPL&#xff09;为开发人员和数据库管理员通用数据库工具。 2.下载安装 下载&#xff1a;https://dbeaver.io/ 安装&#xff1a;一键傻瓜式安装 3.创建连接 此处以连接Oracle为例 4.常用快捷键 ctrl enter 执行 sql &#xff0c; 默认…