0

我正在编写一个程序并尝试记录一些 sql 插入查询成功状态。我不知道如何将 if ERR insert 写入错误日志表。

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

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

谁能告诉我我该怎么做?尝试搜索,但不知道要查找什么键

4

2 回答 2

2

它被称为“异常处理”。看看这个教程

于 2013-04-05T01:52:34.457 回答
1

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

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

当您使用带有子查询的 INSERT 语句加载表时,如果发生错误,则该语句将终止并完全回滚。这可能会浪费时间和系统资源。对于此类 INSERT 语句,您可以通过使用 DML 错误记录功能来避免这种情况。

要使用 DML 错误记录,请添加一个语句子句,该子句指定错误记录表的名称,数据库将在 DML 操作期间遇到的错误记录到该表中。当您将此错误日志记录子句添加到 INSERT 语句时,某些类型的错误将不再终止并回滚该语句。相反,会记录每个错误并继续执行该语句。然后,您稍后对错误的行采取纠正措施。

于 2013-04-05T10:55:37.610 回答