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

发布于 2024-12-03 06:19:08 字数 226 浏览 1 评论 0原文

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

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

在这里,如果没有与条件匹配的数据,我会收到“找不到数据”错误。

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

I need to select into a local variable only if there exists data.

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

Here if there is no data matching the condition I get a no data found error.

I need to select into the local variable only if there is some data matching the condition. Is there a simple query that will solve my problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱你是孤单的心事 2024-12-10 06:19:08

可能最好的方法是处理 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;

Probably the best way is to handle 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;

Also, if you are selecting with primary key /unique key (that is column2 is unique) then there is a trick you can do

SELECT max(column1) INTO local_variable 
  FROM table1 where column2 = p_val;
瞳孔里扚悲伤 2024-12-10 06:19:08

嗯……在进行选择之前先进行计数。或者只处理 no_data_found 异常。

您可以打开一个游标并获取行,进行计数,如果它大于 0,则对该记录执行您的操作

Well…do a count before doing the select. Or just handle the no_data_found exception.

You can open a cursor and fetch the rows, do a count and if it is greater than 0 then do your stuff with that record ????

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文