SQLLDR和skip_unusable_indexes

时间:2009-12-02 15:16:19

标签: oracle sql-loader

我有一个带有唯一索引的表,我需要加载800,000行。

我改变了索引并使其无法使用。 我将'options(rows = 4000,bindsize = 512000,skip_unusable_indexes = TRUE)'添加到我的控制文件中。

我仍然遇到错误的表单:

ORA-01502: index 'x_Unique' or partition of such index is in unusable state

欢迎提出建议

2 个答案:

答案 0 :(得分:0)

您无法使用唯一索引执行此操作。见SKIP_UNUSABLE_INDEXES

  

但是,不允许使用唯一且标记为IU的索引   跳过索引维护。此规则由DML操作强制执行,   并由直接路径加载强制执行以与DML保持一致。

您可能应该删除索引并在之后重新创建它。

答案 1 :(得分:0)

我认为您可以使用非唯一索引替换唯一索引,然后在同一列上放置唯一约束。然后可以禁用约束并在加载之前使索引不可用,然后重建索引并在之后重新启用约束。