我有一个 Id(字符串)列表。 我想删除这样的记录:
DELETE FROM MyTable WHERE ID=:Id
但是,我不想重复调用数据库;相反,我想将 Id 集合作为逗号分隔的字符串传递,并一次性在 Oracle 服务器上执行上述查询!
我们将不胜感激任何帮助。
提前致谢。
最佳答案
使用逗号分隔的列表,您可以使用这样的函数来拆分您的 ID:
select regexp_substr(:id,'[^,]+',1,level) element
from mytable
connect by level <= length(regexp_replace(:id,'[^,]+')) + 1
所以最后的查询:
DELETE FROM MyTable WHERE ID in ( select regexp_substr(:id,'[^,]+',1,level) element
from mytable
connect by level <= length(regexp_replace(:id,'[^,]+')) + 1)
关于c# - 如何在 Oracle PL/SQL 中传递逗号分隔的字符串并遍历它以执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39830858/