Сбой Oracle SQL, когда переменная в предложении where - PullRequest
0 голосов
/ 21 марта 2019

Я только что переключился с SQL Server на Oracle, и меня смущает вопрос о том, как получить результаты, когда я использую переменную, значение которой не установлено на основе результата из SQL-запроса. Что на земле не так с этим?

variable firstDate date; 
variable secondDate date;
exec firstDate := '03/01/2019';
exec secondDate := '03/31/2019';

select 
   c.xent_id  
FROM 
   lic c 
WHERE 
   C.EXPR_DTE >= TO_DATE(firstDate,'MM/DD/YYYY') 
   AND C.EXPR_DTE <= TO_DATE(secondDate,'MM/DD/YYYY') 
   AND c.clnt_cde = 8801

1 Ответ

1 голос
/ 21 марта 2019

Вы не можете определить переменную связывания DATE в SQL * Plus / SQL developer.Он может быть определен как VARCHAR2, назначен строку и преобразован при необходимости.Также обратите внимание, что перед переменными связывания вы пропускаете двоеточия в соответствующих местах.Проверьте запрос, чтобы увидеть, как он используется.Вы можете поместить те же выражения в предложении where фактического запроса.

variable firstDate VARCHAR2; 
variable secondDate VARCHAR2;
exec :firstDate := '03/01/2019';
exec :secondDate := '03/31/2019';


select TO_DATE(:firstDate,'MM/DD/YYYY') dt1 , TO_DATE(:secondDate,'MM/DD/YYYY')
 as dt2 from dual;

DT1      DT2     
-------- --------
01-03-19 31-03-19
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...