【发布时间】:2021-12-23 08:00:27
【问题描述】:
我有一个基于特定日期检索数据的 sql,我的 Java 应用程序调用 plsql — Oracle 来执行此操作。
新的请求是根据屏幕上的多个日期选择来获取数据。
我尝试将这些日期形成为逗号分隔的字符串,并将其作为 pl/SQL 的 varchar 输入参数“I_dates”传递。在 Pl/sql 结束时,我尝试对 where 条件使用 IN 子句,但我得到一个错误,即 I_dates 是一个无效的标识符。
问题:我尝试使用多个日期条件分别运行 sql,它工作正常。
Select * from table1 where date in ('2019-05-01', '2019-06-01') 工作正常。
但是 plsql 中带有日期输入参数(I_dates,其中 I_dates 的值为 '2019-05-01','2019-06-01')的相同 sql 不起作用,并说 I_date 是无效标识符
如何在 pl/sql 中获取多个日期条件的结果
【问题讨论】:
-
绑定变量是单个值 - 在您的情况下,是单个日期。如果您有 2 个日期(2 个变量...),那么您需要 2 个绑定变量。单个绑定变量不能表示日期列表 - 这会导致错误。检查这个question
标签: oracle jdbc plsql bind-variables