É possível definir o procedimento/função do pacote fora do bloco do corpo do pacote (para Oracle)?
A sintaxe simplificada para definir o corpo do pacote é:
create or replace package body <package_name> IS
function <function_name>
<function_body>
procedure <procedure_name>
<procedure_body>
end <package_name>;
/
É possível definir o procedimento dentro do pacote como:
procedure <package_name>.<procedure_name>
<procedure_body>
Eu faço esta pergunta porque sou novato e não entendo por que preciso compilar todo o pacote quando preciso apenas aplicar as alterações de um único procedimento ...
RELACIONADO
- Quais são os benefícios dos pacotes em relação aos procedimentos e funções independentes?
- https://stackoverflow.com/questions/1812049/performance-standalone-procedure-vs-packaged-procedure-in-oracle
Tom diz :
- Sempre use um pacote.
- Nunca use um procedimento autônomo, exceto para demos, testes e utilitários autônomos (que não chamam nada e não são chamados por nada)
Você sempre precisa compilar todo o corpo do pacote -- é um item de código. Você pode criar funções e procedimentos dentro de outros procedimentos, mas isso não altera a necessidade de recompilar o corpo do pacote.
Qual problema você está tentando resolver aqui?
Não está lá. Mas sua ideia é boa....
Em Ada, que foi a origem do PL/SQL, você pode definir uma parte do corpo de um pacote, como um procedimento, como "separado" .
Isso permitiria que você quebrasse corpos de pacote excessivamente longos (em Ada) sem perder as variáveis internas, etc.
Definitivamente adoraria vê-lo em PL/SQL.