Oracle存储过程OUT参数

pis*_*hio 3 oracle plsql stored-procedures

我有一个存储过程与IN OUT参数声明如下:

create or replace PROCEDURE RIFATT_SEGN0_INS(pIdRifattSegn0  in  OUT NUMBER,
                           pNumDossier IN VARCHAR2 ,
                           pNumConsegna IN NUMBER,
                           pDtConsegna IN DATE,
[..]

)  AS
[..]
Run Code Online (Sandbox Code Playgroud)

每当我从另一个程序调用它时,如何获得也出来的pIdRifattSegn0参数?

Ton*_*ews 14

你的问题并不完全清楚.正如其名称所暗示的那样,IN OUT参数双向传递.这意味着它必须传递一个变量,而不是文字,你需要一个声明块来做到这一点.例如:

declare
  l_segn number;
begin
  l_segn := 1;
  -- procedure will have received value = 1
  rifatt_segn0_ins(l_segn, 'x', 2, sysdate);
  -- procedure may have changed value of l_segn from 1 to something else
  dbms_output.put_line(l_segn); 
end;
Run Code Online (Sandbox Code Playgroud)