【发布时间】:2014-08-10 01:53:15
【问题描述】:
我有一个 oracle 存储过程,它使用以下语句更新表。
update boxes
set location = 'some value'
where boxid = passed value
我有一个页面,用户在其中选择 100 多个框并使用新的位置值更新它们。目前,我必须调用存储过程 100 多次来更新每个盒子(每次传递一个 boxid)。
我想知道如何将来自C# 的boxid 列表传递到存储过程中,这样我就必须只调用一次存储过程。
我希望在更新语句中使用 where in(boxids) 类型的 where 子句。
请告诉我如何实现这一点。提前致谢!
【问题讨论】:
-
您使用的是什么 ADO.NET 提供程序?如果提供者支持,您可以将数字作为数组传递。 Oracle 确实支持数组参数,请检查 this SO question 以了解如何传递值列表以及适当的
IN查询
标签: c# sql oracle stored-procedures