PL SQL + SQL простой оператор с использованием переменных подстановки
Я хочу создать простой IF THEN ELSE PL SQL без создания анонимного блока, как показано ниже для использования в SQL TOOLS:
variable a varchar2(20)
variable b varchar2(20)
EXEC :a := '&insert_value_a'
EXEC :b := '&insert_value_b'
- в следующей части я не знаю, как это сделать:
ЕСЛИ значение: дается, и это не NULL THEN
EXECUTE
SELECT column1,column2,column3
FROM table
WHERE condition
AND column2 = :a or column3 = :a;
ELSE
- если задано значение b, используйте его для получения значения:a
EXECUTE
SELECT column2 INTO :a
FROM table
WHERE column_x = :b;
SELECT column1,column2,column3
FROM table
WHERE condition
AND column2 = :a or column3 = :a;
END;
1 ответ
Попробуйте использовать NVL, что-то вроде этого:
SELECT column1,column2,column3
FROM table
WHERE condition
AND column2 = NVL(:a,SELECT column2
FROM table
WHERE column_x = :b)
or column3 = NVL(:a,SELECT column2
FROM table
WHERE column_x = :b);