我刚刚从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
答案 0 :(得分:1)
您不能在SQL * Plus / SQL开发人员中定义DATE
绑定变量。它可能定义为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