只有存在数据时才需要选择局部变量。
SELECT column1 INTO local_variable FROM table1 where column2 = <condition>;
如果没有匹配条件的数据,我会收到无数据错误。
只有当某些数据符合条件时,我才需要选择局部变量。是否有一个简单的查询可以解决我的问题。
答案 0 :(得分:14)
可能最好的方法是处理no_data_found
begin
SELECT column1 INTO local_variable
FROM table1 where column2 = p_val;
exception
when no_data_found then
local_variable := null;
end;
此外,如果您选择使用主键/唯一键(即column2是唯一的),那么您可以使用技巧
SELECT max(column1) INTO local_variable
FROM table1 where column2 = p_val;
答案 1 :(得分:1)
嗯......在做选择之前做一个计数。或者只处理no_data_found异常。
你可以打开游标并获取行,进行计数,如果它大于0,那么用那条记录做你的东西