Oracle Select查询上的自定义异常处理

Oracle Select查询上的自定义异常处理,oracle,oracle11g,Oracle,Oracle11g,我一直在四处寻找,在我的具体情况下找不到任何有用的东西。我正在尝试调试一个访问权限有限的查询。我无法访问数据库本身,但可以查询数据库 这个查询是类似于 SELECT col1, col2, col3 FROM table WHERE col1 = TRUNC(:varibleName) 我相当肯定:variableName是作为日期+时间发送的,col1是一个日期列。然而,我得到了一个错误,“预期的日期,得到的号码” 我想做的是查看:variableName在该查询中运行时的值。我一直试图通过

我一直在四处寻找,在我的具体情况下找不到任何有用的东西。我正在尝试调试一个访问权限有限的查询。我无法访问数据库本身,但可以查询数据库

这个查询是类似于

SELECT col1, col2, col3 FROM table WHERE col1 = TRUNC(:varibleName)
我相当肯定:variableName是作为日期+时间发送的,col1是一个日期列。然而,我得到了一个错误,“预期的日期,得到的号码”

我想做的是查看:variableName在该查询中运行时的值。我一直试图通过使用自定义异常处理来找到答案,但似乎无法运行简单的查询


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

您可以使用
来确定日期并以特定格式传递变量

SELECT col1, col2, col3 
     FROM table WHERE col1 = TRUNC(:to_date(:varibleName,'yyyy-mm-dd'))
现在,您可以向Kaushik传递一个字符串,如
2019-09-01
2019-07-20

查询:

要复制错误,请执行以下操作: 错误:ORA-00932:不一致的数据类型:预期日期获取编号

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_日期格式:

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

您是否尝试过这样的方法:到目前为止(variableName,'M/DD/YYYY')是的,它会给出各种错误-通常是字符串与格式相比太长,或者格式不正确。这就是为什么我需要知道它到底在看什么,以便能够正确地格式化它。我不知道这在语法上是否正确,但可能是这个?从表中选择变量名称为“myCol”、col1、col2、col3