将数据表从C#传递到Oracle存储过程

如何将数据表或数据集从C#传递到Oracle中的存储过程

你不能直接。 但是有几种方法:

  • 将数据表/数据集转换为单个XML字符串或blob,并将其用作存储过程的参数。

  • 使用临时表来存储数据表/数据集内容,以便存储过程可以处理它们。

如果要将数据集或数据表插入ORACLE,则可以创建ORACLE数据适配器。 然后创建一个用于插入的命令对象,并将CommandType设置为StoredProcedure。 然后,您可以使用数据适配器的“更新”命令,并将数据集或数据表作为参数。

像这样的东西:

OracleCommand cmdOra = new OracleCommand(StoredProcedureName, Connection); cmdOra.CommandType = CommandType.StoredProcedure; OracleDataAdapter da = new OracleDataAdapter(); da.InsertCommand = cmdOra; da.Update(dsDataSet); 

虽然在Oracle中使用Ref Cusors可能对你可能做的任何事情都有帮助,但不确定你想要完全做什么。 PL / SQL REF CURSOR和OracleRefCursor

完成将大量数据传递给Oracle的另一种方法是通过数组绑定: 将您的数组放入绑定中