本文转自:http://stackoverflow.com/questions/9104153/what-is-the-correct-way-to-deal-with-this-oracle-ora-01403-no-data-found-except This leads to the familiar ORA-01403: no data found exception. I tried to change
在Oracle中,NO_DATA_FOUND是一个常见的异常,它发生在执行SELECT INTO语句时未找到任何数据的情况下。为了处理这种情况,我们可以使用PL/SQL的BEGIN ... EXCEPTION ... END块来捕获这个异常,并在捕获到异常后执行多个判断条件,最终决定程序的行为,包括终止程序并返回结果。 1. 理解no_data_found异常 NO_DATA_FOUND...
当执行了异常处理时,若发生了异常,则会立即跳转到异常块中,这和java是一样的,可以选择捕获NO_DATA_FOUND异常然后外抛。 createorreplacefunctionfn_test(c_xmvarchar)returnvarchar2asV_P1varchar(10);beginselectnameintoV_p1fromt1where1=2;--NO_DATA_FOUND,会立即跳转到exception块,不再继续执行select1/0into...
使用默认值或异常处理:在 PL/SQL 代码中,可以使用默认值或异常处理来解决 “no data found” 错误。例如,可以使用 NVL 函数为查询结果分配默认值,或者使用 EXCEPTION 子句捕获 NO_DATA_FOUND 异常并进行相应处理。 DECLAREv_valueNUMBER;BEGINSELECTcolumn_nameINTOv_valueFROMtable_nameWHEREcondition; EXCEPTIONWHENNO...
EXCEPTION WHEN no_data_found THEN -- 处理无数据情况下的逻辑或错误提示信息 ... END; 以上示例展示了如何在PL/SQL块中使用no_data_found异常。首先,我们通过SELECT语句将满足条件的记录数查询出来,并将其赋值给变量v_value。然后,通过判断v_value是否等于0,来决定是抛出no_data_found异常还是执行进一步的逻辑...
1、NO_DATA_FOUND 该异常表示,在SELECT或其他操作中,没有找到数据。它是没有任何返回值的报错,通常出现在PL/SQL中。此时,程序员可以通过声明语句来处理该异常,例如: EXCEPTION WHENNO_DATA_FOUNDTHEN -- Execute exception code here 2、CURSOR_ALREADY_OPEN 此异常表示,程序试图打开一个已经打开的游标。这意味着...
insert into table_name (..)select ... from ..;查不到资料时是不会触发Exception的。如果在未找到数据时进行异常操作,可以在insert ...select..语句后加 If sql%rowcount=0 Then --要处理的事务 End If;insert
EXCEPTION WHENNO_DATA_FOUND THEN DBMS_OUTPUT.put_line ('找不到数据'); END; 5.因为数据库中只有1的数据,该条语句会打印出“找不到数据”;如果把sql写成如下方式,则不会打印“找不到数据” ? 1 2 3 4 5 6 7 8 9 10 11 12 13 [sql] ...
oracle pl/sql之异常处理(exception) 一.异常语法 EXCEPTION when exception1 [or exception2...] then statement;...] [when exception1 [or exception2...] then statement;...] [when others then statement1;...] 二.预定义异常 (1)NO_DATA_FOUND...
EXCEPTION WHENNO_DATA_FOUND THEN DBMS_OUTPUT.put_line ('找不到数据'); END; 5.因为数据库中只有1的数据,该条语句会打印出“找不到数据”;如果把sql写成如下方式,则不会打印“找不到数据” 1 2 3 4 5 6 7 8 9 10 11 12 13 [sql]