gpt4 book ai didi

c# - 将 IN 子句中的多个数字作为参数传递给 Oracle 查询时出现无效数字异常

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:31 24 4
gpt4 key购买 nike

在运行时将多个数字作为 IN 子句中的输入作为参数传递时,出现无效数字异常。请帮助我解决这个问题。

我已经为 string 列尝试过它工作正常,也通过直接传递值对 number 列进行了相同的尝试,它工作正常。如果我将值作为参数传递,则它不起作用。

Select Name, Id from Employee where Id IN (:Param)

在提示输入 :Param 值时将 1,2,3 作为输入传递。它抛出异常。

因为如果我直接传递值,它就可以工作。

Select Name, Id from Employee where Id IN (1,2,3)

我想通过在运行时在 IN 条件中传递数值来根据数字字段过滤数据。如何在 Oracle 中实现这一目标。

最佳答案

如果你想让它在这种情况下工作,那么你需要将这些值分成列,然后在 IN 子句中使用它,如以下查询:

SELECT
NAME,
ID
FROM
EMPLOYEE
WHERE
ID IN (
SELECT
REGEXP_SUBSTR('1,2,3', '[^,]+', 1, LEVEL)
FROM
DUAL
CONNECT BY
REGEXP_SUBSTR('1,2,3', '[^,]+', 1, LEVEL) IS NOT NULL
);

'1,2,3' 替换为 :Param 以在您的代码中使用它

干杯!

关于c# - 将 IN 子句中的多个数字作为参数传递给 Oracle 查询时出现无效数字异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57424811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com