Есть ли способ просто выполнить запрос один раз, чтобы выбрать в переменную, считая, что запрос ничего не может вернуть, тогда в этом случае переменная должна быть нулевой.
В настоящее время я не могу напрямую использовать переменную 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
.