Parâmetro para recompilar objetos ao chamá-los

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
joao.alberto.gt
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Qui, 04 Set 2008 2:01 pm
Localização: Cravinhos - SP

Pessoal, boa tarde.

Estou trabalhando com uma view materializada e preciso criá-la num certo momento, porém, antes, tenho que dropá-la, ou seja, tenho um comando pra dropar e logo em seguida o comando pra recriar a view. Faço isso pois o select dessa view é montado nesse momento. Funciona certinho, fiz teste no 10g e no 9i e rodou perfeito, mas minha dúvida é a seguinte: ao dropar, os objetos que referenciam essa view ficam inativos, porém ao chamá-los, eles se "auto-recompilam" e isso está funcionando corretamente, como eu espero, mas não sei se isso é algum parâmetro do Oracle ou não, se for, preciso informar que esse parâmetro precisa ser alterado, alguém tem idéia?

Abraços.

João.
Avatar do usuário
fabricio.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Seg, 12 Mar 2007 7:07 am
Localização: Catanduva/SP
Fabricio M. Silva
Oracle Certified Associate
------------------------------
Catanduva - SP

Olá João,

Este é um comportamento padrão do banco, toda vez que você for executar uma stored procedure, o banco verifica seu status e tenta recompilar caso esteja inválido.

Só tem problema mesmo quando tem alguma alteração nas estruturas das tabelas o que pode invalidar o PL/SQL dentro de uma stored procedure.

Abs,
joao.alberto.gt
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Qui, 04 Set 2008 2:01 pm
Localização: Cravinhos - SP

Olá Fabrício. Então neste caso eu não preciso me preocupar com possíveis erros de compilação? O BD sempre vai recompilar os objetos?

João.
Avatar do usuário
fabricio.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Seg, 12 Mar 2007 7:07 am
Localização: Catanduva/SP
Fabricio M. Silva
Oracle Certified Associate
------------------------------
Catanduva - SP

Olá João,

O BD sempre vai tentar recompilar os objetos inválidos, mas isso não é garantia que estes objetos sempre serão recompilados com sucesso, como disse, pode haver casos de mudança em estrutura e isso pode gerar um código inválido que o BD não é capaz de resolver.

É recomendável nesses casos uma boa rotina de tratamento de exceções, com pelo menos um log/email ou qualquer outra forma de notificação para evitar qualquer surpresa.

Abs,
joao.alberto.gt
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 18
Registrado em: Qui, 04 Set 2008 2:01 pm
Localização: Cravinhos - SP

Perfeito Fabrício. Obrigado.

No meu caso, a estrutura estará toda OK, portanto o BD sempre irá conseguir recompilar os dados. Valeu pela ajuda. Abraços.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes