Oracle SQL重用用户输入

时间:2019-07-04 15:15:31

标签: sql oracle

我基本上想重用输入,以免用户再次输入相同的内容。

查询内容如下:

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 个答案:

答案 0 :(得分:1)

请注意使用内联视图将输入字符串转换为日期(对于整个查询仅一次)-然后其余查询使用在此内联视图中创建的日期,而不是用户的输入。如果您需要查询在同一会话中运行时使用相同的输入,请将&更改为&&。(尽管在大多数情况下,这不是用户想要的)。

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);