PL / SQL select into - 如果数据存在

时间:2011-09-06 07:24:25

标签: plsql

只有存在数据时才需要选择局部变量。

SELECT column1 INTO local_variable FROM table1 where column2 = <condition>;

如果没有匹配条件的数据,我会收到无数据错误。

只有当某些数据符合条件时,我才需要选择局部变量。是否有一个简单的查询可以解决我的问题。

2 个答案:

答案 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,那么用那条记录做你的东西