Правильное использование переменной подстановки в SQL Developer

Мой вопрос об использовании переменной замещения в SQL Developer.

выберите &C1, &C2 из X, где &C1 = 'abc123' и &C2 = 9999;

Я хотел, чтобы вышеупомянутое утверждение запрашивало мои входные данные для C1 и C2 только ОДИН РАЗ и подставляло значения для него 2 раза. Но он спрашивает меня 4 раза C1, C2 и снова C1 и C2.

Кроме того, я не могу понять разницу между & и &&. Что делать, если у меня также есть &C3, &C4... и т. д.

Спасибо

1 ответ

Решение

Вот хорошая ссылка, которая объясняет разницу между & и &&: OraFAQ

В основном & спрашивает вас каждый раз, а && спрашивает вас только один раз.

То, что вы, вероятно, хотите вместо переменных подстановки, это переменные связывания. Просто добавьте префикс имени переменной в двоеточие : и он должен делать то, что вы хотите. Переменные связывания имеют дополнительное преимущество: они строго типизированы, поэтому вы можете указать, является ли это строкой, числом, датой и т. Д. С помощью переменных подстановки текст вставляется в сам SQL, поэтому вам нужно заключить его в одинарные кавычки, чтобы сделать его строкой. (например: '&foo' против просто :foo для переменной связывания).

Пример:

SELECT :foo as x
     , :bar as y
     , some_column
FROM my_table
WHERE some_other_column = :foo
Другие вопросы по тегам