如何在sql developer的"Enter Binds"对话框中使用日期变量?

ver*_*map 10 sql oracle oracle-sqldeveloper

我试图从sql开发人员运行查询,查询有变量(:var).我有日期变量的问题.

我使用所有可能的组合来使用to_date()函数格式化日期.每次获得以下异常:

ORA-00932: inconsistent datatypes: expected DATE got NUMBER
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
*Cause:    
*Action:
Run Code Online (Sandbox Code Playgroud)

抱歉,无法在此处发布图片

Mar*_*bak 9

尝试将您的查询更改为:

select first_name,
       last_name,
       dob,
       org
  from emp
 where dob > to_date(:highDate,'DD-MON-YYYY');
Run Code Online (Sandbox Code Playgroud)

然后在提示时输入'20-JAN-2010'.

  • 问题是它是一个绑定变量。如果使用绑定变量,则它是给定类型变量的占位符。您不能传递包含函数的任意字符串,不。考虑使用绑定变量作为给定数据类型的特定值的占位符来解析查询。如果无法重写查询,则尝试在会话中设置 NLS_DATE_FORMAT='DD-MON-YYYY',然后执行原始查询,然后输入 '20-JAN-2010'。在这种情况下,Oracle 应该使用 NLS_DATE_FORMAT 的值并将字符串隐式转换为日期。 (2认同)

小智 5

只需复制 Oracle 社区论坛的答案:

您应该能够输入符合您NLS_DATE_FORMAT设置的日期 。

例如,如果NLS_DATE_FORMATDD-MON-YYYY,您可以输入 24-jan-2011今天的日期。

为我工作。