Правильное использование переменной подстановки в 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