如何优化sql查询?
select返回空数据(列)。
如果所有列都为空,则如何在查询中生成异常:
begin
select t1.status, t1.curr, t1.amount, t1.serv
into stat,curr,amnt,serv
from table1 t1
where t1.id = 78;
exception when no_data_found then
result := 1;
stat := 'R';
when stat is null and curr is null and amnt is null and serv is null then
result := 1;
stat := 'R';
end;
2条答案
按热度按时间oprakyz71#
如果所有这些变量都声明为
NULL
默认情况下,它们将保持不变NULL
如果没有争吵
table1
谁的ID = 78
,所以NO_DATA_FOUND
将被提升,或实际上有这样一行,但所有这些列的值都是
NULL
这不会导致例外,所以你必须自己提出一个-如果你想的话在这两种情况下,变量的值将保持不变
NULL
也就是说你可以用这样的方法:首先是样本数据:
具有自定义异常的pl/sql块:
gkl3eglg2#
向查询中添加所需的 predicate 更容易,因此这两种情况都只需要一个公共异常处理程序: