Bom, só colocando um adendo na conversa, porque o nosso amigo gostaria de 
compilar somente a função? Ele não diz o porque, mas supondo que ao compilar o 
pacote invalide uma serie de outros objetos do banco de dados e ele não quer 
isso.


Para este caso, nos temos o cabeçalho do pacote e o corpo do pacote que ai sim, 
podem ser vistos como dois objetos distintos; A dependência de outros objetos 
(seja view ou pacote/função/procedimento)  com o pacote é com o seu cabeçalho. 
Então se a função que esta dentro do pacote não esta publicada e/ou não será 
alterada a sua assinatura (mexendo no tipo e quantidade de parâmetros), o nosso 
amigo pode compilar somente o corpo do pacote não afetando os demais objetos 
que tenha dependência.

Agora se precisar alterar mexer na assinatura da função, ai não tem jeito, será 
preciso compilar o pacote como um todo e ai vai sim invalidar todos os objetos 
de dependência.

*** Compilar o pacote inteiro ***
alter package <nome_pacote> compile;

*** Compilar somente o corpo ***

alter package <nome_pacote> compile body;  

 
Alessandro Lúcio Cordeiro da Silva 
        Analista de Sistema

þ http://alecordeirosilva.blogspot.com/

Porque esta é a vontade de Deus, a saber, a vossa 
santificação: que vos abstenhais da prostituição.
(1º Tessalonicenses 4:3)




Em Quarta-feira, 19 de Fevereiro de 2014 11:42, "jlchia...@yahoo.com.br" 
<jlchia...@yahoo.com.br> escreveu:
 
  
  Impossível, colega : PACKAGE se traduz exatamente como PACOTE, e é essa a 
idéia geral : uma package é um "pacote", uno e indivisível, criado e compilado 
e mantido como um só objeto.... INCLUSIVE, em tese essa é uma das principais 
VANTAGENS na utilização da package : se vc executou uma rotina x que está na 
package A, composta pelas rotinas x, y,e z, AUTOMAGICAMENTE (já que a package é 
uma "coisa" só), o código de y e de z (de tudo que está na package) já SUBIU 
para o cache com a execução da rotina x, assim EM TESE a execução das rotinas y 
e z vai ocorrer a aprtir do cache, sendo mais rápidas....
  
  O que vc PODE fazer é isolar a função, mas aí (obviamente) vc muito 
provavelmente perde as vantagens de ter a package...
  
  []s
  
    Chiappa

Responder a