c# - 如何在 Oracle PL/SQL 中传递逗号分隔的字符串并遍历它以执行查询?

标签 c# oracle plsql oracle11g

我有一个 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/

相关文章:

oracle utl_http 在shopware 6 admin-api 上进行休息调用?

c# - 如何在 Azure Blob 存储中解压自解压 Zip 文件?

c# - 如何从 XAML 中正确引用类

c# - 如何从以特定名称开头的 appsettings 键中获取所有值并将其传递给任何数组?

database - 从另一个表创建一个表而不填充它

sql - 获取多行的查询需要逗号分隔的输出

c# - 如何在简单注入(inject)器中注册实例集合

java - 得到???使用 JDBC 从 dbms_output.get_lines 输出

sql - 我需要在每年的 Oracle SQL 查询中找到最高投票者

sql - 在oracle中找到列中最长行的长度