2013-04-05 75 views
0

我正在写一个程序,并试图做一些SQL插入查询成功状态的日志记录。 我不知道如何写如果ERR插入到错误日志表。Oracle err处理

insert into TableA (select * from TableB); 
commit; 

**if (show ERR <> NULL) 
insert into TableErr** 

任何人都可以帮我吗我该怎么做?尝试搜索,但不知道寻找什么密钥

+0

您需要将其封闭在块中。看看这是否有帮助[链接] http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/07_errs.htm – Elmer 2013-04-05 01:54:59

回答

1

除了在PL/SQL中处理错误的经典方法,如果您使用SQL加载批量数据,那么请考虑使用错误处理表。

从文档:http://docs.oracle.com/cd/E11882_01/server.112/e17120/tables004.htm#InsertDMLErrorLogging

当你使用INSERT语句与子查询,如果发生错误 装载表,声明终止和回滚其 全部。这可能浪费时间和系统资源。对于INSERT语句,您可以通过使用DML错误 日志记录功能来避免这种情况。

要使用DML错误记录,您添加指定 的成中DML操作中遇到的数据库记录 错误的错误记录表的名称声明条款。当您将此错误 日志子句添加到INSERT语句时,某些类型的错误没有 会终止并回滚该语句。相反,每个错误是 记录和声明继续。然后您在以后对 错误的行采取纠正措施。