【发布时间】:2014-10-14 12:06:06
【问题描述】:
我正在使用带有 EDM 的 Oracle 11 g(使用 ODP.net)。我的 Oracle SP 返回一个参考光标,我无法从 EDM 运行它。我为 SP 创建了一个复杂类型并添加了函数导入,选择返回值作为复杂类型。
运行我的应用程序后,我收到以下错误:
ORA-06550:第 1 行,第 8 列:PLS-00306:错误的数量或类型 调用“GetScriptDetail”的参数。 ORA-06550:第 1 行,第 8 列: PL / SQL:语句被忽略
我的 App.config :
add name="SYSTEM.GetScriptDetail.RefCursor.cv_1" value="implicitRefCursor bindinfo='mode=Output'"
add name="SYSTEM.GetScriptDetailbyAITID.RefCursorMetaData.cv_1.Column.0" value="implicitRefCursor metadata='ColumnName=TITLE;BaseColumnName=TITLE;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'"
我的函数导入包含:
public ObjectResult<GETSCRIPTDETAIL_Result> GETSCRIPTDETAIL(Nullable<global::System.Decimal> v_ID)
{
ObjectParameter v_IDParameter;
if (v_ID.HasValue)
{
v_IDParameter = new ObjectParameter("V_ID", v_ID);
}
else
{
v_IDParameter = new ObjectParameter("V_ID", typeof(global::System.Decimal));
}
return base.ExecuteFunction<GETSCRIPTDETAIL_Result>("GETSCRIPTDETAIL", v_IDParameter);
}
它从“return”中抛出异常 base.ExecuteFunction("GETSCRIPTDETAIL", v_IDParameter);
我的 Oracle SP 参数为:
v_ID IN NUMBER DEFAULT NULL,
cv_1 OUT SYS_REFCURSOR
如何将 refcursor 输出作为参数传递给执行函数?或者我需要通过这个参数吗?
【问题讨论】: