一、过程中NO_DATA_FOUND的用法:
1.首先创建一个表lengzijiantest,表中只有一个字段f_id
-
[cpp]
-
CREATE TABLE LENGZIJIANTEST
-
(
-
F_ID NUMBER NOT NULL
-
)
2.插入一条数据
-
[cpp]
-
insert into lengzijiantest values (1)
3.现在表里面只有一条数据,值为1;
4.写入如下命令
-
[sql]
-
DECLARE
-
v_tmp NUMBER := 0;
-
BEGIN
-
SELECT f_id
-
INTO v_tmp
-
FROM lengzijiantest
-
WHERE f_id = 2;
-
EXCEPTION
-
WHEN NO_DATA_FOUND
-
THEN
-
DBMS_OUTPUT.put_line ('找不到数据');
-
END;
5.因为数据库中只有1的数据,该条语句会打印出“找不到数据”;
二、不起作用的NO_DATA_FOUND
如果把sql写成如下方式,则不会打印“找不到数据”
-
[sql]
-
DECLARE
-
v_tmp NUMBER := 0;
-
BEGIN
-
SELECT min(f_id)
-
INTO v_tmp
-
FROM lengzijiantest
-
WHERE f_id = 2;
-
EXCEPTION
-
WHEN NO_DATA_FOUND
-
THEN
-
DBMS_OUTPUT.put_line ('找不到数据');
-
END;
6.具体原因是由于在sql中使用了聚合函数,当使用聚合函数时,NO_DATA_FOUND是不起作用的,在此记录下问题。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30260000/viewspace-1826794/
,如需转载,请注明出处,否则将追究法律责任。