Правда ли, что параметру OUT должно быть присвоено значение в PL / SQL? - PullRequest
1 голос
/ 14 февраля 2012
create or replace procedure ppp(ot OUT number)
is
begin
null;
end;
/

Это прекрасно работает при вызове.

Ответы [ 3 ]

6 голосов
/ 14 февраля 2012

Из документации Oracle о выходных параметрах:

Формальный параметр действует как неинициализированная переменная.

Так что хорошо, если вы не укажете значение.

DECLARE
  d  NUMBER;
BEGIN
  ppp( d );

  IF ( d IS NULL )
  THEN
    DBMS_OUTPUT.put_line( 'NULL' );
  END IF;
END;

Записывает NULL в вывод dbms

0 голосов
/ 28 апреля 2016

С http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/08_subs.htm#917:

Как и переменные, формальные параметры OUT инициализируются значением NULL.

Перед выходом из подпрограммы явно присвойте значения всем формальным параметрам OUT. В противном случае соответствующие фактические параметры будут нулевыми.

0 голосов
/ 16 февраля 2012

Испытания показывают, что это необходимо, но не обязательно.

...