2013-05-26 5 views
3

Я очень новичок в SQL, а также управление ими, чтобы извлечь из некоторых других запросов, которые мы используем следующий синтаксис:Использование переменных в Oracle SQL Developer 3.2

--VARIABLES 
undefine PF_PROD --product; 
undefine PF_PSG --shop; 


--QUERY 
SELECT * 
FROM ET1250 
WHERE PRODUCT=&&PF_PROD 
AND PRICE_SHOP_GROUP=&&PF_PSG 
ORDER BY PERIOD_YEAR desc,PERIOD_WEEK desc; 

Это прекрасно работает до тех пор, как я запускать undefine заявления первого , есть ли способ заставить запрос всегда запрашивать эти переменные без меня, прежде всего, с undefine?

ответ

3

Использовать один &. Это описано кратко в SQL Developer documentation:

для замены переменных, синтаксис & & переменных присваивает постоянное значения переменного, а переменная синтаксиса & назначает временное (не хранимых) значение переменного.

... и более подробно в SQL*Plus documentation, что в значительной степени актуально для обоих клиентов. Обратите внимание, что если вы используете define или accept переменную, то она не будет запрашиваться даже с одним амперсандом, но в данный момент это не относится к вам.

+0

Спасибо, это сработало отлично. – LeleyX

2

Существует два типа переменных в SQL-плюс: замена и привязка.

переменные Замена может заменить SQL * Plus параметры командной или другой жестко запрограммированный текст:

define a = 1; 
select &a from dual; 
undefine a; 

Bind переменные хранят значения данных для SQL и отчетности PL/SQL, выполняемых в СУБД; они могут проводить отдельные значения или полный результат setsb:

var x number; 
exec :x := 10; 
select :x from dual; 
exec select count(*) into :x from from dual; 
exec print x; 

поддержка SQL Developer подстановочных переменный, но при выполнении запроса с привязкой :var синтаксисом запросом для связывания (в диалоговом окне).

Ссылка:

Смежные вопросы