考虑到查询可能不返回任何内容,有没有办法只运行一次查询以选择一个变量,那么在这种情况下变量应为null。
当前,我不能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
。
v_column
,我仍然有一些遵循的逻辑,并且我必须在异常部分中使用“ goto”跳回到以下代码。我有点犹豫goto
。