Oracle SQL повторно использовать пользовательский ввод - PullRequest
0 голосов
/ 04 июля 2019

Я в основном хочу повторно использовать ввод, чтобы избавить пользователя от повторного ввода того же самого ..

Вот как выглядит запрос:

select * from table
where bb.bbn_from_dttm >= TO_DATE('&Bill_Date_ddmmyyyy','dd-mm-yyyy')
and bb.bbn_to_dttm <= LAST_DAY('&Bill_Date_ddmmyyyy');

Я не хочу, чтобы пользователь вводил это дважды, и получение значения из первого ввода дало бы мне нужный диапазон дат.

Это SQL Oracle.

Есть какие-нибудь подсказки?

1 Ответ

1 голос
/ 04 июля 2019

Обратите внимание на использование встроенного представления для преобразования входной строки в дату (только один раз для всего запроса) - тогда в остальной части запроса используется дата, созданная в этом встроенном представлении, а не вводимые пользователем данные.Измените & на &&, если вам нужно, чтобы запрос использовал один и тот же ввод при каждом запуске в одном сеансе (хотя в большинстве случаев это не то, что хотели бы пользователи).

select bb.* 
from   my_table bb
       join
       ( select TO_DATE('&Bill_Date_ddmmyyyy','dd-mm-yyyy') as bill_date
         from   dual
       ) d
  on   bb.bbn_from_dttm >= d.bill_date and bb.bbn_to_dttm <= LAST_DAY(d.bill_date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...