最佳答案
有没有一种方法可以只运行一次查询来选择一个变量,考虑到查询可能什么也不返回,那么在这种情况下,变量应该为空。
目前,我不能直接做一个 select into
变量,因为如果查询没有返回任何值,PL/SQL 会抱怨变量没有被设置。我只能运行查询两次,第一次执行计数,如果计数为零,则将变量设置为 null,如果计数为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
台词有点犹豫。