选择查询上的自定义异常处理

时间:2019-07-17 19:08:40

标签: oracle oracle11g

我一直在环顾四周,但找不到适合我的具体情况的任何信息。我正在尝试调试访问受限的查询。我无法访问数据库本身,但可以查询数据库。

查询与

类似
SELECT col1, col2, col3 FROM table WHERE col1 = TRUNC(:varibleName)

我相当确定:variableName是作为日期和时间发送的,而col1是日期列。但是,出现错误“预期日期,得到数字”。

我想做的是查看在此查询中运行时:variableName的值是什么。我一直在尝试通过使用自定义异常处理来发现问题,但似乎无法运行简单的查询。

当变量导致错误时,有什么办法可以看到它的值?

2 个答案:

答案 0 :(得分:1)

您可以使用TO_DATE并以特定格式传递变量。

SELECT col1, col2, col3 
     FROM table WHERE col1 = TRUNC(:to_date(:varibleName,'yyyy-mm-dd'))

现在,您可以传递类似2019-09-012019-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')) ;