我正在使用Microsoft Enterprise Library编写DataAccess代码,并且我正在连接到Oracle数据库。当我尝试调用一个期望输出类型为RefCursor的存储过程时,我不能将它传递给它,因为唯一可用的类型是“System.Data.DbType”中的这些类型。 那么我应该选择哪种类型的Oracle“RefCursor”DbType?
答案 0 :(得分:2)
您必须使用parameter array list,不能使用AddParameter。
答案 1 :(得分:0)
我记得,您可以在Oracle PLSQL端命名sys_refcursor“cur_OUT”,只需使用cmd.ExecutorReader()在C#端检索结果,即使没有在Enterprise Library Data Access块侧声明cur_OUT参数。
这是doc(我忘记了源代码......):
这意味着您可以将引用光标命名为“cur_OUT”,数据访问应用程序块将为您绑定它;您不需要为游标显式创建输出参数。如果存储过程使用名称不是“cur_OUT”的游标,则必须为命令显式添加每个游标的参数。同样,如果存储过程包含多个游标,则必须将每个游标参数显式添加到命令中。