2013-10-15 2 views
5

Привет Я пытаюсь объявить переменную для использования в Oracle SQL запроса на выборку, как, например:Объявите переменную в Oracle SQL для использования в запросе

DECLARE 
    myDate DATE; 
BEGIN 
SELECT Source as "Source", DT as "Date", Status as "Status", COALESCE("Count", 0) as "Count" 
FROM (Huge SubQuery that includes many WHERE date between x and y); 
END; 

мне нужно использовать MyDate для запроса поэтому я не должны обновлять его в 10 местах каждый раз, когда я запускаю запрос. В принципе, его просто для объявления переменной, которая может использоваться в дате, находится между пунктом в нескольких местах.

+2

Возможный дубликат [Ошибка (2,7): PLS-00428: предложение INTO ожидается в этом операторе SELECT] (http://stackoverflow.com/questions/4710471/error2-7-pls-00428-an -into-clause-is-expected-in-this-select-statement) - см. ответ Alex Poole –

+0

Не используйте блок PL/SQL. Просто используйте переменную связывания. Перейдите в Oracle Docs для получения дополнительной информации: http://docs.oracle.com/cd/B10501_01/appdev.920/a96584/oci05bnd.htm – Rachcha

+0

Непонятно, где вы хотите инициализировать и использовать myDate. Можете ли вы обновить свой вопрос? – igr

ответ

2

попробовать это:

variable var DATE 
exec :var := '15-OCT-13' 

, а затем ваш выберите с помощью: вар в нем

+1

Это только true в SQL * Plus и неверно в скомпилированном коде ... – Ben

0

Я нашел способ добавления переменных для запроса SQL следующим образом

DEFINE RES_DT = TO_DATE('11-AUG-15'); 

И также для доступа к переменной через запрос мы должны использовать обозначение «&» следующим образом:

select * from customer where assign_date = &RES_DT; 
+0

Используете ли вы Менеджер запросов? Или это просто простой SQL? –

+0

Да Это простой SQL –

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