C# - OracleCommandBuilder从存储的proc返回refcursor生成insert命令

时间:2012-04-11 05:43:17

标签: c# stored-procedures command builder sys-refcursor

CommandBuilder是一个非常方便的类,可以帮助我们避免编写INSERT,UPDATE和DELETE命令。当CommandType是Text时,它非常容易。但是当CommandType是StoredProcedure并且pocedure返回SYS_REFCUSOR时,它无法生成SQL。我尝试使用sotred过程从Oracle数据库中检索数据。选择很容易。 (我将输出参数分配 - 在这种情况下,光标返回到IDataReader)。 CommandBuild是否仍然可以使用存储过程返回游标来生成更新SQL?或者我必须手动编写所有这些SQL。 (我如何错过MS SQL Server,因为它能够使用存储过程返回结果。)

1 个答案:

答案 0 :(得分:0)

经过长时间无望的搜索后,我从最认可的来源找到了我的问题的答案: ORACLE

这是ODP.NET文档中的注释:

REF CURSOR类型无法更新。但是,检索到DataSet的数据 可以更新。 因此,OracleDataAdapter类需要自定义SQL 用于将任何REF CURSOR数据更新刷新到数据库的语句。 OracleCommandBuilder对象不能用于生成SQL语句 REF CURSOR更新

我认为最后一句话是我问题的正确答案。希望这会对某人有所帮助。