web-dev-qa-db-fra.com

Appeler une procédure stockée dans Toad

J'ai une nouvelle procédure stockée, mais obtenez une erreur lors de l'appelant,

CREATE OR REPLACE PROCEDURE SCOTT.getempsal(
        p_emp_id IN NUMBER,
        p_emp_month IN CHAR,
        p_emp_sal OUT INTEGER)

AS
BEGIN
    SELECT EMP_SAL
      INTO p_emp_sal
      FROM EMPLOYEE_SAL
    WHERE  EMP_ID = p_emp_id
    AND    EMP_MONTH = p_emp_month;

END getempsal;

Et essayer de l'appeler:

getempsal(1,'JAN',OUT) --Invalid sql statement.
8
user1050619

Votre procédure contient un paramètre OUT, vous devez donc l'appeler en bloc comme:

declare
a number;
begin 
  getempsal(1,'JAN',a);
  dbms_output.put_line(a);
end;

Une procédure simple (disons avec un paramètre numérique) peut être appelée avec

exec proc(1);

ou

begin
proc(1);
end;
15
Florin Ghita