Sql 行不存在时DB2 delete语句错误
各位, 在DB29.x中,delete语句正常工作,如果存在特定的行,则会给出成功的返回代码。但如果该行不存在,则返回非零 即说EmployeeTable不包含employeeID 1234Sql 行不存在时DB2 delete语句错误,sql,db2,error-code,Sql,Db2,Error Code,各位, 在DB29.x中,delete语句正常工作,如果存在特定的行,则会给出成功的返回代码。但如果该行不存在,则返回非零 即说EmployeeTable不包含employeeID 1234 db2“从employeeID=1234的EmployeeTable中删除” 它给出如下输出 SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTA
db2“从employeeID=1234的EmployeeTable中删除”
它给出如下输出
SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000
如果没有行,是否仍要返回成功/零返回代码?您可以将该delete语句包装在存储过程中,并捕获其中的异常。存储过程执行将始终抛出0
在命令行中,您无法执行任何操作,因为该命令有一个警告。您还可以在调用db2 delete时进行后期处理,例如,创建一个shell函数,并在引发该sqlcode时更改错误代码。您可以将该delete语句包装在存储过程中,并捕获内部异常。存储过程执行将始终抛出0
在命令行中,您无法执行任何操作,因为该命令有一个警告。您还可以在调用db2 delete时进行后期处理,例如,创建一个shell函数,并在引发该SQL代码时更改错误代码。当被迫使用另一个程序执行SQL代码时,这种情况并不少见 以下是一个坏主意,但如果您是表的唯一用户,则可以使用 如果您具有insert权限,则可以插入一个虚拟行,并在该命令之后执行一个包含虚拟行的delete命令。这样,删除操作总是至少获得一行:
插入mytable(id)值(9999999);
从mytable中删除
其中,作业的日期>=当前日期-1天或
id=9999999;
当被迫使用其他程序执行SQL代码时,这种情况并不少见
以下是一个坏主意,但如果您是表的唯一用户,则可以使用
如果您具有insert权限,则可以插入一个虚拟行,并在该命令之后执行一个包含虚拟行的delete命令。这样,删除操作总是至少获得一行:
插入mytable(id)值(9999999);
从mytable中删除
其中,作业的日期>=当前日期-1天或
id=9999999;
您想要实现什么?@Bruno:我们已经获得了一个外部包装脚本,用于输入SQL。但是包装器脚本总是检查SQL的返回代码是否为零。因此,有人向我们提出了一个bug来处理空值场景。你想实现什么?@Bruno:我们得到了一个外部包装器脚本,用于输入SQL。但是包装器脚本总是检查SQL的返回代码是否为零。因此向我们提出了一个bug来处理空值场景。谢谢@AngocA。有没有一种方法可以使用decode或类似的方法来捕获空行条件?类似于decode的操作可以在存储过程中完成:创建过程p()begin declare dummy int;为sqlstate“02000”声明continue处理程序set dummy=1;从表十中删除;end@thanks@AngocA。有没有一种方法可以使用decode或类似的方法来捕获空行条件?类似于decode的操作可以在存储过程中完成:创建过程p()begin declare dummy int;为sqlstate“02000”声明continue处理程序set dummy=1;从表十中删除;结束@