-1

重複
の可能性: TOAD でストアド プロシージャを呼び出す

以下に示すように、Oracleで関数が与えられていますが、実行できませんでした。

FUNCTION GetAdres (pCif        NUMBER,
                    pAddressno NUMBER DEFAULT 0,
                   pAdrSerino NUMBER ,
                    pRAdres      OUT T_ADRES%ROWTYPE,
                   pErrCode      OUT NUMBER,
                   pErrMes      OUT VARCHAR2
                     )
4

1 に答える 1

0

FunctionではなくProcedureを使用する必要があると思います

Oracle 関数は、別の構文を使用して 1 つの値のみを返すことができます。

CREATE FUNCTION GetAdres(parameter1  IN NUMBER, parameter2 IN NUMBER) 
   RETURN NUMBER

実際、Oracle Function で OUT パラメータを使用することはできますが (私の悪い点です)、とにかく固有の戻り値の型が必要です。

しかし

Oracleプロシージャで複数のOUTパラメータを完全に使用できます...

そう

解決策1(そして私はこれに行きます)

関数の代わりにプロシージャを使用する

ソリューション2

カスタム型を作成し、それを戻り値の型として使用します。

create a custom type
CREATE TYPE my_type as object
    (Adres      VARCHAR2(100), 
     ErrCode    NUMBER,
     ErrMes     VARCHAR2(250));


CREATE FUNCTION GetAdres (pCif        NUMBER,
                    pAddressno NUMBER DEFAULT 0,
                   pAdrSerino NUMBER)
  RETURN my_type;
于 2013-02-04T07:53:55.910 に答える