EF 调用 oracle 存储过程失败,有人知道为什么吗? 难道是oracle 的 EF 不支持游标吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然已经用了ef,为啥还要用存储过程呢,ef的目的就是解除数据库和程序的耦合,你这样两者又是强耦合了...。不知道楼主用的是odp的那个版本,会不会是版本问题 哦,还有,odp最新支持ef应该是32位版本,vs里面是不是也是需要设置一下 错误提示:ORA-06550: line 1, column 8:PLS-00306: wrong number or types of arguments in call to 'USP_TEST'ORA-06550: line 1, column 8:PL/SQL: Statement ignored 有木有人遇到哦...... 类型错误吧,ef里面经常会遇到类型错误,在.net 4.0里面是这样,ef是1.0版本,比如datetime生成的sql语句后,其实必须变成datetime2,否则会报错,不知道存储过程是不是也需要,ef存储过程米有用过 很高兴,这为朋友回答我了,谢谢这个肯定不是数据类型的问题,因为就一个输入参数(varchar(2)).关键就是加上游标参数就不行,不加就好了 难道无解..........是不是该转java了 EF我没用过,不过调用Oracle的存储过程要返回结果集,必须传递那个游标参数,也就是你那个cur_out参数,虽然不是直接对其捕获,但是你不传递的话,执行过程本身就要报错。 http://blogs.datadirect.com/2009/06/effective-ef-with-oracle-stored-procedures-with-ref-cursors.html http://blogs.datadirect.com/2009/06/effective-ef-with-oracle-stored-procedures-with-ref-cursors.html 好像不行,提示缺少参数 好像游标类型需要在APP.CONFIG配置一下。https://forums.oracle.com/forums/thread.jspa?messageID=10057743 http://www.microsofttranslator.com/bv.aspx?from=&to=zh-CHS&a=http%3A%2F%2Fdownload.oracle.com%2Foll%2Fobe%2FEntityFrameworkOBE%2FEntityFrameworkOBE.htm这个里面的FILE链接 下载后是EF 调用 oracle 存储过程Oracle官方源代码。 Oracle的游标我不太懂,但是肯定是支持游标的。你可以在存储过程上面改改,给输出一个你自定义的返回值。 Oracle的游标支持,但是需要在CONFIG文件里配置一下,再倒入存储过程。。可惜我没有调通过。 我做出来了,你要在WEB.CONFIG里面进行配置,与SQL SERVER有很大的区别,只要是返回游标的都必须配置例子: <oracle.dataaccess.client> <settings> <add name="HR.UPDATE_AND_RETURN_SALARY.RefCursor.NEW_SALARY" value="implicitRefCursor bindinfo='mode=Output'" /> <add name="HR.UPDATE_AND_RETURN_SALARY.RefCursorMetaData.NEW_SALARY.Column.0" value="implicitRefCursor metadata='ColumnName=FIRST_NAME;BaseColumnName=FIRST_NAME;BaseSchemaName=HR;BaseTableName=EMPLOYEES;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" /> <add name="HR.UPDATE_AND_RETURN_SALARY.RefCursorMetaData.NEW_SALARY.Column.1" value="implicitRefCursor metadata='ColumnName=SALARY;NATIVEDATATYPE=Number;ProviderType=Int32'" /> </settings> </oracle.dataaccess.client>其他的照着配置,但类型一定要对应正确,不然就要报错,很麻烦 HR.UPDATE_AND_RETURN_SALARY.RefCursor.NEW_SALARY 这个是什么?是我出的存储过程如果叫 getResult(游标 结果表)对应的配置 是getResult.结果集 吗? 可以參考一下Oracle官方的說明,其中有關於EF中Procedure的游標的具體操作說明:http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html http://download.oracle.com/oll/obe/EntityFrameworkOBE/EntityFrameworkOBE.htm上面的這個例子更詳細 我照着做,就是没有刷新出来, App.config 都张贴过去了,谁有遇到我这样的呢?能帮忙提醒一下吗? c#判断一个时间是否在两个时间之间不是这样判断的吗 怎么才能合并rdlc报表的上下两个单元格 “参数无效”的脚本错误 ref dataset问题? 怎样知道网站占用多少内存?并每隔20分钟整理内存。 中了iframe木马怎么办?? 如何在tableCell里加入背景图? 加急!~加急!~网站上传到服务器报错!在线等!~ 怎样在页面中保存视图对象(客户端查询),用什么方法? 求助,winwebmail邮件不能发送出去,返回错误!求解! 谁能帮我解释一下正则表达式 AspNetPager分页语句 ,只用我的要求写语句,能搞定就说话,否则别进@!
不知道楼主用的是odp的那个版本,会不会是版本问题
ORA-06550: line 1, column 8:
PLS-00306: wrong number or types of arguments in call to 'USP_TEST'
ORA-06550: line 1, column 8:
PL/SQL: Statement ignored
有木有人遇到哦......
是不是该转java了
好像不行,提示缺少参数
https://forums.oracle.com/forums/thread.jspa?messageID=10057743
这个里面的FILE链接 下载后是EF 调用 oracle 存储过程Oracle官方源代码。
Oracle的游标我不太懂,但是肯定是支持游标的。
你可以在存储过程上面改改,给输出一个你自定义的返回值。
例子:
<oracle.dataaccess.client>
<settings>
<add name="HR.UPDATE_AND_RETURN_SALARY.RefCursor.NEW_SALARY" value="implicitRefCursor bindinfo='mode=Output'" />
<add name="HR.UPDATE_AND_RETURN_SALARY.RefCursorMetaData.NEW_SALARY.Column.0" value="implicitRefCursor metadata='ColumnName=FIRST_NAME;BaseColumnName=FIRST_NAME;BaseSchemaName=HR;BaseTableName=EMPLOYEES;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
<add name="HR.UPDATE_AND_RETURN_SALARY.RefCursorMetaData.NEW_SALARY.Column.1" value="implicitRefCursor metadata='ColumnName=SALARY;NATIVEDATATYPE=Number;ProviderType=Int32'" />
</settings>
</oracle.dataaccess.client>其他的照着配置,但类型一定要对应正确,不然就要报错,很麻烦
是我出的存储过程如果叫 getResult(游标 结果表)
对应的配置 是getResult.结果集 吗?
http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html