0

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

4

1 回答 1

0

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

这是 ODP.NET 文档说明的内容:

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

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

于 2012-04-11T07:47:45.290 回答