我一直在环顾四周,但找不到适合我的具体情况的任何信息。我正在尝试调试访问受限的查询。我无法访问数据库本身,但可以查询数据库。
查询与
类似SELECT col1, col2, col3 FROM table WHERE col1 = TRUNC(:varibleName)
我相当确定:variableName是作为日期和时间发送的,而col1是日期列。但是,出现错误“预期日期,得到数字”。
我想做的是查看在此查询中运行时:variableName的值是什么。我一直在尝试通过使用自定义异常处理来发现问题,但似乎无法运行简单的查询。
当变量导致错误时,有什么办法可以看到它的值?
答案 0 :(得分:1)
您可以使用TO_DATE
并以特定格式传递变量。
SELECT col1, col2, col3
FROM table WHERE col1 = TRUNC(:to_date(:varibleName,'yyyy-mm-dd'))
现在,您可以传递类似2019-09-01
,2019-07-20
等的字符串。
答案 1 :(得分:0)
Kaushik的附件,
查询:
要复制错误: 错误:ORA-00932:数据类型不一致:预期DATE得到了NUMBER
with cte as (select trunc(sysdate) as dt, sysdate-1 as yst_dt from dual)
select * from cte where dt=TRUNC(2019-07-18) ;
使用To_Date格式:
with cte as (select trunc(sysdate) as dt, sysdate-1 as yst_dt from dual)
select * from cte where dt=TRUNC(to_date('2019-07-18','yyyy-mm-dd')) ;