[Dica] Objetos Inválidos no Banco

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qui, 01 Dez 2005 2:19 pm

a query abaixo mostra os objetos inválidos no banco...

Código: Selecionar todos
SELECT DISTINCT u.object_name,
       decode(u.object_type,'PACKAGE BODY','PACKAGE',u.object_type) object_type,
       u.created
  FROM user_objects u
WHERE u.status = 'INVALID'
   AND u.object_type IN ('PROCEDURE','FUNCTION','PACKAGE BODY','PACKAGE')
ORDER BY u.created


e esta próxima compila os objetos inválidos....

Código: Selecionar todos
DECLARE
  CURSOR c_obj IS
    SELECT DISTINCT u.object_name,
           decode(u.object_type,'PACKAGE BODY','PACKAGE',u.object_type) object_type,
               u.created
      FROM user_objects u
     WHERE u.status = 'INVALID'
         AND u.object_type IN ('PROCEDURE','FUNCTION','PACKAGE BODY','PACKAGE')
     ORDER BY u.created;
  r_obj NUMBER;
BEGIN
  FOR r_obj IN c_obj LOOP
      BEGIN
      EXECUTE IMMEDIATE 'alter '||r_obj.object_type||' '||r_obj.object_name||' compile';
      dbms_output.put_line(r_obj.object_type||' '||r_obj.object_name||': COMPILADO!' );
      EXCEPTION
        WHEN OTHERS THEN
        dbms_output.put_line('Erro Compilando '||r_obj.object_type||' '||r_obj.object_name);
     END;
   END LOOP;
END;


[]´s

:wink:
anderson
Localização: Toledo - PR

Anderson Nuernberg
---

Mensagemem Sex, 02 Dez 2005 8:16 am

Outra forma de fazer isso (acho que a partir da versão 9i) é usar a DBMS_UTILITY.

Veja um exemplo:
Código: Selecionar todos
exec dbms_utility.compile_schema('SCOTT');


Abaixo, está a sintaxe:
Código: Selecionar todos
dbms_utility.compile_schema(
schema         IN VARCHAR2,
compile_all    BOOLEAN DEFAULT TRUE,
reuse_settings BOOLEAN DEFAULT FALSE);


:-o
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Qui, 06 Jul 2006 10:30 am

daria para usar o dbms_utility.compile_schema por dblink ??
mello
Localização: sp



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante