【发布时间】:2011-11-02 02:26:27
【问题描述】:
有没有办法只运行一次查询以选择变量,考虑到查询可能不返回任何内容,那么在这种情况下,变量应该为空。
目前,我不能直接执行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 行。
【问题讨论】: