-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

认为您应该使用Procedure,而不是Function

Oracle 函数可以使用另一种语法返回一个且只有一个值。

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

事实上,您可以在 Oracle 函数中使用 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 回答