Plsql PL/SQL选择进入-如果数据存在

Plsql PL/SQL选择进入-如果数据存在,plsql,Plsql,仅当存在数据时,我需要选择一个局部变量 SELECT column1 INTO local_variable FROM table1 where column2 = <condition>; 从表1中选择column1进入局部_变量,其中column2=; 在这里,如果没有与条件匹配的数据,则会出现“未找到数据”错误 只有当有一些数据与条件匹配时,我才需要选择进入局部变量。有没有一个简单的查询可以解决我的问题。最好的方法可能是处理找不到的数据 begin SELECT col

仅当存在数据时,我需要选择一个局部变量

SELECT column1 INTO local_variable FROM table1 where column2 = <condition>;
从表1中选择column1进入局部_变量,其中column2=;
在这里,如果没有与条件匹配的数据,则会出现“未找到数据”错误


只有当有一些数据与条件匹配时,我才需要选择进入局部变量。有没有一个简单的查询可以解决我的问题。

最好的方法可能是处理找不到的数据

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;

嗯…在做选择之前先数一数。或者只处理未找到数据的异常


您可以打开一个光标并获取行,进行计数,如果它大于0,则对该记录执行操作。为什么需要max()?选择max()时,您不会得到任何数据,如果不存在这样的行,您只会得到空值
,其中column2=p\u val
。所以这只是一个技巧,可以用来防御无数据异常,尽管我认为显式处理这个异常更好。