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;