尝试引用未赋值的PL/SQL表元素:在尝试访问PL/SQL表(如index-by表)中尚未初始化的元素时,也可能触发此异常(尽管这种情况较少见,且通常与NO_DATA_FOUND的传统用途有所区别)。处理NO_DATA_FOUND异常的方法或建议 异常处理:在PL/SQL块中使用EXCEPTION部分来捕获并处理NO_DATA_FOUND异常。 sql DECLARE v_age INTEGER...
CREATE TABLE TB_USER ( ID INTEGER PRIMARY KEY, USER_NAME VARCHAR2(20) NOT NULL, USER_AGE INTEGER NOT NULL ); CREATE SEQUENCE SEQ_USER INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE CACHE 10; CREATE OR REPLACE TRIGGER TR_USER BEFORE INSERT ON TB_USER FOR EACH ROW BEGIN SELECT SEQ_USE...
NO_DATA_FOUND:该异常可以在两种不同的情况下出现:第一种:当SELECT。。。INTO语句的WHERE子句 没匹配任何数据行时;第二种:试图引用尚未赋值的PL/SQL index-by表元素时。 SQL%NOTFOUND:是隐匿游标的属性,当没有可检索的数据时,该属性为:TRUE;常作为检索循环退出的条件。 若某UPDATE或DELETE语句的WHERE子句不匹配...
NO_DATA_FOUND并不是一个错误,而且一个意外的情况,这类似于空指针异常,而这个意外情况只是没找到数据而已,当调用者不同时,对其的处理也不同。当sql查询调用时,遇到这个异常就认为是没有数据,然后返回一个Null,但是当PL/sql调用时,会认为这是一个不好的情况,转由异常处理块处理。 归根结底一...
这个函数很简单,是我写的一个测试函数,没什么意义,“select name into V_p1 from t1 where 1 = 2;”这句话有经验的人一看就知道它会报错,因为这个查询返回的结果集是空,会报一个错,将其赋值时,pl/sql引擎会认为它没有数据,是一个null,这很类似于java中的空指针异常。当我们调试该函数的时候,到这一句,...
在PL/SQL程序中,通过异常来控制程序的流程是很正常的。只要出现的异常不属于功能性的或逻辑上的就没什么不好。严格地说NO_DATA_FOUND不能算异常。不过你的select1语句可以合并为一行,如下:SELECT C.INTERFACE, C.STATE INTO OUTINTERFACE,DBSTATE FROM F_TRADETRAN C WHERE C.SVRTYPE=INSVRTYPE ...
PL/SQL Code:-- PL/SQL block to handle the NO_DATA_FOUND exception DECLARE emp_name VARCHAR2(100); emp_id NUMBER := 225; BEGIN BEGIN SELECT first_name INTO emp_name FROM employees WHERE employee_id = emp_id; DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_name); EXCEPTION WHEN NO...
以上示例展示了如何在PL/SQL块中使用no_data_found异常。首先,我们通过SELECT语句将满足条件的记录数查询出来,并将其赋值给变量v_value。然后,通过判断v_value是否等于0,来决定是抛出no_data_found异常还是执行进一步的逻辑。 由于SELECT语句没有返回任何数据时会引发no_data_found异常,我们可以使用EXCEPTION块来捕获该...
这个在plsql developer中直接测试执行没问题,会报ORA-1403异常。 但是在mybatis中调用的话就不会抛出NO_DATA_FOUND异常,而是在select * into语句为空时默默的终止执行该过程。 在服务层采用事务处理的话就有问题了,服务层调用 select * into为空的存储过程处理逻辑肯定是有毛病的,本来应该抛出异常...
这个函数很简单,是我写的一个测试函数,没什么意义,“select name into V_p1 from t1 where 1 = 2;”这句话有经验的人一看就知道它会报错,因为这个查询返回的结果集是空,会报一个错,将其赋值时,pl/sql引擎会认为它没有数据,是一个null,这很类似于java中的空指针异常。当我们调试该函数的时候,到这一句,...