Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como criar um procedimento dentro de um pacote no Oracle


No Oracle, primeiro você precisa declarar o procedimento em uma especificação de pacote e, em seguida, criar o procedimento completo no corpo do pacote. Pois se você tentar criar procedure apenas no corpo do pacote sem sua declaração na especificação do pacote então você receberá o erro PLS-00302 componente deve ser declarado e ORA-06550 bloco PL/SQL inválido. Então abaixo estou dando um exemplo de como criar um procedimento dentro de um pacote no Oracle.

Neste exemplo, criaremos um procedimento update_comm para atualizar a comissão na tabela EMP. Este procedimento tomará o parâmetro para porcentagem de comissão.

Criar um procedimento dentro de um pacote no exemplo Oracle

Declare o procedimento na especificação do pacote

CREATE OR REPLACE PACKAGE emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE);
END emp_pkg;

Criar o procedimento completo no corpo do pacote

CREATE OR REPLACE PACKAGE BODY emp_pkg
IS
PROCEDURE update_comm (i_comm IN emp.comm%TYPE)
IS
BEGIN

UPDATE emp
SET comm = sal * NVL (i_comm, 0) / 100;

COMMIT;
END update_comm;
END emp_pkg;

Agora você pode executar este procedimento da seguinte forma:

BEGIN
/* Updating commission with 5% of salary */
emp_pkg.update_comm (5);
END;