如何避免使用sqlldr将重复记录插入数据库?

时间:2014-04-28 08:20:04

标签: oracle duplicate-removal sql-loader

我的表没有处理重复数据的限制。我怎样才能实现这一点,使用' sqlldr'不会在表中插入相同的数据。效用?我是否必须在控制文件或参数中进行更改?或其他什么?

1 个答案:

答案 0 :(得分:0)

您无法单独使用sqlldr。一种方法是在加载完成后删除重复项。 要在sqlldr加载后删除重复项:

DELETE FROM 
  table_name A
WHERE 
  a.rowid > 
   ANY (
 SELECT 
    B.rowid
 FROM 
    table_name B
 WHERE 
    A.col1 = B.col1
 AND 
    A.col2 = B.col2
    );

或者您可以使用外部表来加载数据,只需在加载期间使用distinctgroup by子句或使用merge语句删除重复项。