gpt4 book ai didi

select - 当结果可能为空时,如何在 PL/SQL 中选择一个变量?

转载 作者:行者123 更新时间:2023-12-01 09:35:55 25 4
gpt4 key购买 nike

有没有办法只运行一次查询来选择一个变量,考虑到查询可能不返回任何内容,那么在这种情况下变量应该为空。

目前,我不能直接执行 select into a 变量,因为如果查询不返回任何内容,PL/SQL 会提示变量未设置。我只能运行查询两次,第一个进行计数,如果计数为零,则将变量设置为空,如果计数为 1,则选择变量。

所以代码会是这样的:

v_column my_table.column%TYPE;
v_counter number;
select count(column) into v_counter from my_table where ...;
if (v_counter = 0) then
v_column := null;
elsif (v_counter = 1) then
select column into v_column from my_table where ...;
end if;

谢谢。

更新:
我没有使用异常的原因是我在分配了 v_column 之后还有一些下面的逻辑,我必须在异常部分使用 goto 才能跳回以下代码。我对 goto 行有点犹豫。

最佳答案

您可以通过将变量设置为 NO_DATA_FOUND 来简单地处理 NULL 异常。这样,只需要一个查询。

    v_column my_table.column%TYPE;

BEGIN

BEGIN
select column into v_column from my_table where ...;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_column := NULL;
END;

... use v_column here
END;

关于select - 当结果可能为空时,如何在 PL/SQL 中选择一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com