0

OracleストアドプロシージャをEntity Frameworkデータコンテキスト経由で実行しようとしています。Oracleストアドプロシージャコール例外を返すORA-06550 PLS-00103

PROCEDURE "GET_SUPPLIERS" (
    SUPP_LIST OUT SYS_REFCURSOR) AS 
BEGIN 

    OPEN SUPP_LIST FOR 
    SELECT 
     SUPPLIER_NAME 
    FROM 
     A_SUPPLIER ; 

END; 

App.configを設定する:

var ctx = new Supplier.SupplierEntities(); 
    Supplier.GET_SUPPLIERS_Result1 r = ctx.GET_SUPPLIERS().FirstOrDefault(); 

、次の行に:

<oracle.dataaccess.client> 
    <settings> 
     <add name="SYSADM.GET_SUPPLIERS.RefCursor.0" value="implicitRefCursor bindinfo='mode=Output'" /> 


     <add name="SYSADM.GET_SUPPLIERS.RefCursorMetaData.0.Column.0" 
      value="implicitRefCursor metadata='ColumnName=SUPPLIER_NAME; 
      BaseColumnName=SUPPLIER_NAME;BaseSchemaName=SYSADM;BaseTableName=A_SUPPLIER; 
      NativeDataType=varchar2;ProviderType=Varchar2; 
      ProviderDBType=String;DataType=System.String; 
      ColumnSize=10;AllowDBNull=true'" /> 


    </settings> 
    </oracle.dataaccess.client> 

次のように私は、コードを呼び出す、次のように私のストアドプロシージャが見えます

public ObjectResult<GET_SUPPLIERS_Result1> GET_SUPPLIERS() 
{ 
    return base.ExecuteFunction<GET_SUPPLIERS_Result1>("GET_SUPPLIERS"); 
} 

私はフォローインを取得しますグラム例外

ORA-06550: line 1, column 32: 
PLS-00103: Encountered the symbol ">" when expecting one of the following: 

    () - + case mod new not null <an identifier> 
    <a double-quoted delimited-identifier> <a bind variable> 
    table continue avg count current exists max min prior sql 
    stddev sum variance execute multiset the both leading 
    trailing forall merge year month day hour minute second 
    timezone_hour timezone_minute timezone_region timezone_abbr 
    time timestamp interval date 
    <a string literal with character set specification> 

答えて

1

はSYSADM.GET_SUPPLIERS.RefCursorMetaData.SUPP_LIST.Column

SYSADM.GET_SUPPLIERS.RefCursor.SUPP_LIST

に自分の名前のパラメータを更新してください.0

Entity Frameworkは、(パラメータの位置表記ではなく)ストアドプロシージャを実行するために常にBindByNameを使用します。

+0

私は試しても機能しませんでした。ありがとう –

+0

メタデータ行の更新についても説明しておきます。SYSADM.GET_SUPPLIERS.RefCursorMetaData.SUPP_LIST.Column.0。それも更新しましたか? –

+0

はい、ありました...ありがとうございました... –

関連する問題