【问题标题】:PLS-00306: wrong number or types of arguments in .NET Entity FrameworkPLS-00306:.NET Entity Framework 中的参数数量或类型错误
【发布时间】: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 输出作为参数传递给执行函数?或者我需要通过这个参数吗?

【问题讨论】:

    标签: oracle entity-framework-4


    【解决方案1】:

    您需要在 .config 文件中添加以下内容

    <oracle.manageddataaccess.client>
      <version number="*">
        <implicitRefCursor>
          <storedProcedure schema="schemaname" name="GETSCRIPTDETAIL">
            <refCursor name="CV_1">
              <bindInfo mode="Output" />
            </refCursor>
          </storedProcedure>
        </implicitRefCursor>
      </version>
    </oracle.manageddataaccess.client>
    

    我在这里找到了可以直接在 VS 中半自动执行该操作的步骤:http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/appdev/dotnet/EntityFrameworkOBE/EntityFrameworkOBE.html#section5

    现在我的问题是架构名称在配置和 edmx 中无处不在,而且我还没有找到一种合适的方法来使其动态化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-09
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多