插入选择继续错误

La *_*lle 1 sql oracle error-handling insert oracle9i

我有一些使用的sql脚本

INSERT INTO secondtable 
  (field, field1)
SELECT field, field2 
  FROM table;
Run Code Online (Sandbox Code Playgroud)

我使用oracle 9.x和sqldevelopper.

当我启动它们时,在某些插入上选择我得到外键错误.所以他们没有插入那些工作的人.

当错误出现并且可能显示或记录错误时,是否可以说oracle继续相同?

Mic*_*ton 5

您无法在ORacle 9中继续失败的基于集的插入.您必须使语句失效,或接受它将被回滚.

选项:

  1. 如果此类错误很少发生,请尝试基于集合的工作并添加一个异常处理程序,该异常处理程序在发生错误时执行基于行的解决方案,并在发生错误时显示错误(或将其存储在某处以便进一步处理).是的,这会重复工作,但大多数时候都会进行最有效的操作,当出现错误时,它会根据您的决定处理它们.

  2. 如果这是一个常见的情况,请将其吸收并切换到如上所述的基于行的解决方案.尽可能优化并希望有一天你可以利用#3)

  3. 升级到Oracle 10并利用DML错误日志记录