【发布时间】:2025-12-22 05:00:17
【问题描述】:
我通常使用 MySQL 或 SQL Server,我在 Oracle SQL Developer 中遇到了相当大的问题。
我有这样的查询(只是为了简单地复制我的问题):
SELECT *
FROM table t1
WHERE t1.date > :START_DATE AND t1.date < :END_DATE AND t1.id IN (:IDS)
当我运行此查询时,对话窗口会打开并提示我输入变量。
问题是当我输入逗号分隔的 ID(如 5,6,7 或带引号 '5,6,7')时,我收到此错误:
ORA-01722: 无效号码
01722. 00000 - “无效号码”
*原因:
*行动:
这里有什么想法吗?
PS:输入变量必须有对话框提示。同事对 SQL 不友好。 ;)
【问题讨论】:
-
伙计,非常感谢。这是我一直在寻找的解决方案。
-
您是否遇到过 任何 语言,在传递单个字符串参数时将决定(自动)检查内容,观察逗号,而是决定将其视为多个单独的参数? (然而,奇怪的是,人们一直期望这是 SQL 中的行为)
-
@Damien_The_Unbeliever 如果使用替换变量而不是绑定变量,它的行为会像这样。