【问题标题】:Migrating data from one table of one database to other table of other database将数据从一个数据库的一个表迁移到另一个数据库的另一个表
【发布时间】:2017-11-13 05:38:14
【问题描述】:

我正在尝试使用 java 和 Oracle 将数据从数据库 DB1 的表 A 迁移到数据库 DB2 的表 B。

我使用的是 java 1.8,我的源数据库有 Oracle 11g,目标数据库有 Oracle 12c。

我在源数据库中创建了目标数据库的结构(scema、表)。并通过使用 *insert 迁移到 java 中的 dest select * from source* 查询。但是由于源表中的记录数以百万计,所以它很耗时.. 稍后我想将这个迁移的数据导出到我的实际目的地,这样也需要时间。

据我所知.. 我认为我不能使用带有 2 个连接的准备好的语句。因为我的表由 400 到 500 列组成,所以用准备好的语句绑定这么多列并不是一个好主意。我的源表和目标表的结构也不同。我在属性文件中进行了字段映射,我将旧字段映射到新字段以便插入到 select * from tbl 查询中。就像我的源表的列是 col0001,目标中的相应列是 ref_no。所以这也不允许我使用准备好的语句。但是通过使用 java 中的语句,我只能迁移单个 dB 的数据。

我也尝试过使用 dblink。但是对于 clob 数据类型,我无法迁移数据。

如果有人以前做过类似的事情,请提供解决方案。

【问题讨论】:

    标签: migration


    【解决方案1】:

    对于一次性复制,您可以进行直接模式插入:

    insert /*+ APPEND */ into local_table select * from table@database_link;
    

    这里有一些其他相关的links

    【讨论】:

    • 它给出了错误,因为不能使用从远程表中选择的 LOB 定位器
    猜你喜欢
    • 2020-03-16
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多