【问题标题】:sqlldr direct load=true with referential partition options带有参考分区选项的 sqlldr direct load=true
【发布时间】:2015-06-23 03:32:48
【问题描述】:

所以我需要使用行级触发器对表进行多次批量插入。我认为最好先收集生成的 id,将它们与我的数据结合起来,然后执行 direct=true sql 加载。通常这可以正常工作,但表是按引用分区的,因此它不能禁用允许我进行直接加载的外键约束。

有人知道吗?我的第一个批量收集到一个可变数组并每 100,000 个插入的解决方案速度适中,但如果我能够直接加载,那会快得多。

错误:SQL*Loader-965:错误 -1 禁用约束 client_fk 表 my_table

【问题讨论】:

    标签: sql oracle plsql oracle11g sql-loader


    【解决方案1】:

    manual 表示无法让 SQL*Loader 使用直接路径加载但不禁用外键。

    但是直接路径插入可以在引用分区表上工作,即使启用了外键,正如我在 this question and answer 中演示的那样。

    将进程从 SQL*Loader 转换为外部表 INSERT 语句。 SQL*Loader 和外部表使用类似的机制,因此转换应该不会太困难。外部表需要更多的工作——您必须编写带有附加提示的INSERT,并手动禁用和重新启用触发器以及可能的其他对象。但这种额外的控制允许通过直接路径插入快速加载数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2019-02-04
      • 2023-03-03
      • 2021-02-28
      相关资源
      最近更新 更多