如何使用多输出参数调用Oracle函数

时间:2013-02-04 07:45:48

标签: sql oracle function sql-function

  

可能重复:
  CALLING A STORED PROCEDURE IN TOAD

我在Oracle中获得了一个函数,如下所示。但是我无法让它运行。

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

1 个答案:

答案 0 :(得分:0)

认为你应该使用程序,而不是功能

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;