gpt4 book ai didi

c# - Entity Framework 上的 ORA-03111 错误

转载 作者:行者123 更新时间:2023-11-30 17:36:33 26 4
gpt4 key购买 nike

我正在尝试在接收输入(字符串)和输出(ref_cursor)的 Entity Framework 中执行存储过程:

public virtual List<UserCost> GET_USER_CUSTO(string p_ANOMES)
{
var p_ANOMESParameter = new OracleParameter("P_ANOMES", OracleDbType.Varchar2, p_ANOMES, ParameterDirection.Input);
var p_refCursor = new OracleParameter("USER_CUSTO", OracleDbType.RefCursor, ParameterDirection.Output);

return this.Database.SqlQuery<UserCost>(
"BEGIN TIM_FUNCTIONS.GET_TIM_USER_CUSTO(:P_ANOMES, :USER_CUSTO); end;", p_ANOMESParameter, p_refCursor).ToList();
}

但我一直收到这个异常:

ORA-03111: Break received on communication channel

我读到这可能是 DB/dll 版本的问题,但我已经对其他 2 个存储过程做了同样的事情,并且一切正常。所以我想情况并非如此。

这个问题是在 Oracle 论坛上提出的,有一些有用的回复但没有解决方案: https://community.oracle.com/thread/3967933

最佳答案

其实我认为它与 Entity Framework 无关,可能与 Entity Framework 提供者无关,但它与 Ado.Net 提供者有关。
您可以开始尝试了解相同的存储过程是否可以在没有 EF 的情况下工作。
我的意思是您可以使用 ado.net 运行存储过程,并且非常重要的是,读取所有数据(例如 Console.Writeline 每列,或者类似的事情是填充数据表,但在这种情况下,如果 Oracle/Ado.Net 提供程序卡在您看不到的特定记录上)。

关于c# - Entity Framework 上的 ORA-03111 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com