EF 调用 oracle 存储过程失败,有人知道为什么吗?

凋零的老树 2012-06-14 03:00:16
如果存储过程没有返回游标,就能成功吗,如果返回游标,就是失败,有人知道为什么吗?谢谢
  public ObjectResult<T_ID> USP_TEST(global::System.String mTABLE)
{
ObjectParameter mTABLEParameter;
if (mTABLE != null)
{
mTABLEParameter = new ObjectParameter("MTABLE", mTABLE);
}
else
{
mTABLEParameter = new ObjectParameter("MTABLE", typeof(global::System.String));
}
return base.ExecuteFunction<T_ID>("USP_TEST", mTABLEParameter);
}


存储过程 也很简单
create or replace procedure USP_TEST(mTable in varchar2,cur_out Out sys_refcursor
) is
begin
open cur_out for select * from t_id;
end USP_TEST;
...全文
568 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
sty5819 2013-12-14
  • 打赏
  • 举报
回复


我照着做,就是没有刷新出来, App.config 都张贴过去了,谁有遇到我这样的呢?能帮忙提醒一下吗?
2012-09-24
  • 打赏
  • 举报
回复
http://download.oracle.com/oll/obe/EntityFrameworkOBE/EntityFrameworkOBE.htm

上面的這個例子更詳細
2012-09-24
  • 打赏
  • 举报
回复
可以參考一下Oracle官方的說明,其中有關於EF中Procedure的游標的具體操作說明:
http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html
lihuinihao6315 2012-08-01
  • 打赏
  • 举报
回复
HR.UPDATE_AND_RETURN_SALARY.RefCursor.NEW_SALARY 这个是什么?
是我出的存储过程如果叫 getResult(游标 结果表)
对应的配置 是getResult.结果集 吗?
toptolovedjy 2012-07-25
  • 打赏
  • 举报
回复
我自己定义的,说了你照着改,还有个注意事项提醒一下大家,你的过程最好不要放在包里面,否则也成功不了,我刚才做了实验,同样的过程,一个放在包里面,一个放在包外面,结果包里面的那个始终不成功,包外面的那个一下就成功了,目前我还没有找到解决的办法
手抓宝 2012-07-20
  • 打赏
  • 举报
回复
你的错误是参数数量或类型不对劲,还是在这个方面下下功夫把。。
toptolovedjy 2012-07-19
  • 打赏
  • 举报
回复
我做出来了,你要在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>

其他的照着配置,但类型一定要对应正确,不然就要报错,很麻烦
lihuinihao6315 2012-07-04
  • 打赏
  • 举报
回复
Oracle的游标支持,但是需要在CONFIG文件里配置一下,再倒入存储过程。。可惜我没有调通过。
凋零的老树 2012-06-29
  • 打赏
  • 举报
回复
没有人知道啊?
凋零的老树 2012-06-28
  • 打赏
  • 举报
回复
自定义返回值?

没明白

有没有人搞过哦
ycproc 2012-06-22
  • 打赏
  • 举报
回复

Oracle的游标我不太懂,但是肯定是支持游标的。
你可以在存储过程上面改改,给输出一个你自定义的返回值。
凋零的老树 2012-06-21
  • 打赏
  • 举报
回复
呵呵,搞不定哦
lihuinihao6315 2012-06-21
  • 打赏
  • 举报
回复
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官方源代码。
lihuinihao6315 2012-06-21
  • 打赏
  • 举报
回复
好像游标类型需要在APP.CONFIG配置一下。
https://forums.oracle.com/forums/thread.jspa?messageID=10057743
lihuinihao6315 2012-06-21
  • 打赏
  • 举报
回复
试了,不行。
凋零的老树 2012-06-21
  • 打赏
  • 举报
回复
http://blogs.datadirect.com/2009/06/effective-ef-with-oracle-stored-procedures-with-ref-cursors.html

好像不行,提示缺少参数
lihuinihao6315 2012-06-21
  • 打赏
  • 举报
回复
请楼主留下答案
我也有遇到这个问题
凋零的老树 2012-06-21
  • 打赏
  • 举报
回复
功夫不负有心人哦
凋零的老树 2012-06-20
  • 打赏
  • 举报
回复
郁闷.......
加载更多回复(9)

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧