将表中的列值作为参数传递给存储过程 sql

Posted

技术标签:

【中文标题】将表中的列值作为参数传递给存储过程 sql【英文标题】:Passing column values from a table as parameter to a stored procedure sql 【发布时间】:2018-03-09 08:25:29 【问题描述】:

我有一个接受两个值的存储过程。 存储过程看起来像这样SP_Test(ID1,ID2)

我有一个 Oracle 表 T1,它有两列 ID1 和 ID2。我想从该表中读取每一行并将参数(ID1 和 ID2)传递给存储过程 SP_Test。

我怎样才能做到这一点?

谢谢 阿努沙

【问题讨论】:

Anusha :一个理想的解决方案是重组您的存储过程,以便获取和操作其中的行(如果需要)而不是多次调用它,特别是如果您从询问。因此,如果您可以展示该过程的一部分或描述它如何使用参数 id1、id2,我们或许可以向您推荐更好的方法。 【参考方案1】:

在循环中?

begin
  for cur_r in (select id1, id2 from t1) loop
    sp_test (cur_r.id1, cur_r.id2);
  end loop;
end;

【讨论】:

嗨,这只会删除第一个匹配项? 如果你这么说。我不知道你的过程是做什么的,我只是说如何为存储在 T1 表中的所有行运行它。

以上是关于将表中的列值作为参数传递给存储过程 sql的主要内容,如果未能解决你的问题,请参考以下文章

将表值参数传递给具有不同字段数的存储过程

如何从.net代码将表值参数传递给存储过程

使用 PetaPoco 将表值参数传递给存储过程

将参数传递给 AS400 中的存储过程以匹配 IN 键

将表值参数传递给存储过程

将 xml 作为参数传递给 SQL Server 中的存储过程