我正在编写一个程序并尝试记录一些 sql 插入查询成功状态。我不知道如何将 if ERR insert 写入错误日志表。
insert into TableA (select * from TableB);
commit;
**if (show ERR <> NULL)
insert into TableErr**
谁能告诉我我该怎么做?尝试搜索,但不知道要查找什么键
它被称为“异常处理”。看看这个教程。
除了在 PL/SQL 中处理错误的经典方法外,如果您使用 SQL 加载批量数据,请考虑使用错误处理表。
来自文档:http ://docs.oracle.com/cd/E11882_01/server.112/e17120/tables004.htm#InsertDMLErrorLogging
当您使用带有子查询的 INSERT 语句加载表时,如果发生错误,则该语句将终止并完全回滚。这可能会浪费时间和系统资源。对于此类 INSERT 语句,您可以通过使用 DML 错误记录功能来避免这种情况。
要使用 DML 错误记录,请添加一个语句子句,该子句指定错误记录表的名称,数据库将在 DML 操作期间遇到的错误记录到该表中。当您将此错误日志记录子句添加到 INSERT 语句时,某些类型的错误将不再终止并回滚该语句。相反,会记录每个错误并继续执行该语句。然后,您稍后对错误的行采取纠正措施。