Sql Insert语句返回"零/无行插入"

Sek*_*har 7 oracle plsql insert

我正在编写一个INSERTStatement,在PL/SQL块中向表中插入一行.如果此插入失败或没有插入行,那么我需要回滚先前执行的更新语句.

我想知道在什么情况下INSERT语句可以插入0行.如果插入因某些异常而失败,我可以在异常块中处理它.是否存在INSERT可能成功运行但不会抛出异常的情况,我需要检查是否SQL%ROWCOUNT < 1

Jus*_*ave 19

如果您的INSERT语句结构为a INSERT ... VALUES,那么它将成功插入一行或生成异常.没有必要检查SQL%ROWCOUNT.

如果您的INSERT语句结构为a INSERT ... SELECT,那么该SELECT语句可能会返回0行,该INSERT语句将插入0行,并且不会抛出任何异常.如果您认为这是一个错误,则需要SQL%ROWCOUNTINSERT语句运行后检查.