Oracle
 sql >> Base de données >  >> RDS >> Oracle

Paramètre par défaut dans la procédure oracle

Tout d'abord, je pense que ce package serait invalide, vous essayez d'ajouter un corps pour votre fonction dans la spécification de votre package. Cependant, l'idée est bonne et elle devrait fonctionner, si elle est bien faite, par exemple, créez un package :

create or replace package xyz is

  procedure abc(v_frst_param in varchar2 default 'Y');

  procedure abc(v_frst_param in varchar2 default 'Y', v_second_param in varchar2);

end xyz;

Et un corps de package :

create or replace package body xyz is

procedure abc(v_frst_param in varchar2 default 'Y') is
  begin  
    dbms_output.put_line(v_frst_param);  
  end;

procedure abc(v_frst_param in varchar2 default 'Y', v_second_param in varchar2) is
  begin  
    dbms_output.put_line(v_frst_param || ' / ' || v_second_param);  
  end;

end xyz;

Ensuite, vous voudrez peut-être faire l'appel de votre procédure :

begin
  xyz.abc;
  xyz.abc(); -- This is the same thing as above
  xyz.abc(v_second_param => 'Maybe');
end;

Veuillez noter que si vous envoyez quelque chose comme paramètre pour v_first_parameter à cette procédure, elle utilisera la valeur que vous avez envoyée et non celle par défaut.