Как вызвать функцию Oracle с несколькими выходными параметрами


person user1171708    schedule 04.02.2013    source источник
comment
Что вы пробовали? Что случилось? Какую ошибку, если таковая имеется, вы получили? Откуда вы пытаетесь вызвать его и что вы собираетесь делать с результатами?   -  person Alex Poole    schedule 04.02.2013


Ответы (1)


Думаю, вам следует использовать процедуру, а не функцию.

Функция Oracle может возвращать одно и только одно значение с другим синтаксисом.

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

На самом деле, вы можете иметь параметры OUT в функции Oracle (это плохо), но вам все равно нужен уникальный тип возвращаемого значения.

Но

Вы можете прекрасно использовать несколько параметров OUT в процедуре Oracle...

So

Решение 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;
person Raphaël Althaus    schedule 04.02.2013