begin process at 2010 07 29 22:37:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > COMPILER LES OBJECTS EN ERREUR SOUS ORACLE

COMPILER LES OBJECTS EN ERREUR SOUS ORACLE


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :compiler, objects, erreur, oracle Niveau :Initié Date de création :23/06/2005 Date de mise à jour :23/06/2005 13:16:56 Vu / téléchargé :10 498 / 226

Auteur : truffe

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Pour ma première source je poste un script qui permet de compiler les objets en erreur (PACKAGE, PACKAGE BODY, VIEW, FUNCTION, TRIGGER, et PROCEDURE stocké )

Script testé uniquement sous Oracle 8I et 9I mais devrait fonctionner sous toutes les versions d'Oracle.

Une fois connecté sous un Schema spécifique exécutez le petit script si dessous.
Celui ci parcourt tous les objets du Shema en statut 'INVALIDE' et génère un script avec les commandes de compilation.

Une fois le script généré il l'exécute en affichant après chaque compilation les erreurs pouvant être survenues pendant la compilation.

Puis en fin de script, il affiche les objets qu'il n'a pas réussi à passer en mode 'VALID'

Voilà

Source

  • -- pour ne pas avoir de saut de page
  • SET PAGES 0
  • -- on n'affiche rien à l'écran
  • SET ECHO OFF
  • -- Le nom du script sql qui sera généré
  • SPOOL ${ORACLE_SID}_compile.sql
  • PROMPT SET ECHO ON
  • -- selection de tous les objets en status invalide
  • -- et génération de la ligne de commande pour les compiler
  • -- suivi d'un 'show error ' dans le script
  • SELECT 'alter '||
  • decode(object_type, 'PACKAGE BODY','PACKAGE',object_type) ||
  • ' '||object_name||
  • ' compile '||decode(object_type,'PACKAGE','PACKAGE', 'PACKAGE BODY','body',null)
  • ||chr(10)||'/'||chr(10)||'show errors'
  • FROM user_objects
  • WHERE object_type IN ('PACKAGE','PACKAGE BODY','VIEW', 'FUNCTION','TRIGGER','PROCEDURE')
  • AND status = 'INVALID'
  • ORDER BY decode(object_type,'VIEW',1,
  • 'FUNCTION',2,
  • 'PROCEDURE',3,
  • 'PACKAGE',4,
  • 'PACKAGE BODY',5,
  • 'TRIGGER',6,7)
  • /
  • PROMPT SET ECHO OFF
  • -- on ferme le script généré
  • SPOOL OFF
  • -- création d'un fichier log pour archivé les SHOW ERROR après chaque compilation
  • SPOOL ${ORACLE_SID}_compile.log
  • -- execution du script généré
  • @${ORACLE_SID}_compile.sql
  • SPOOL OFF
  • REM
  • -- et enfin on affiche de nouveau les objets toujours
  • -- en statu 'INVALIDE' après la compilation
  • SET PAGESIZE 500
  • TTITLE 'Invalid Objects'
  • COLUMN c format a70 HEADING 'Object_name(Object_type)'
  • SELECT object_name||'('||object_type||')' c
  • FROM user_objects
  • WHERE status='INVALID'
  • ORDER BY object_type,object_name;
-- pour ne pas avoir de saut de page
SET PAGES 0

-- on n'affiche rien à l'écran
SET ECHO OFF

-- Le nom du script sql qui sera généré
SPOOL ${ORACLE_SID}_compile.sql

PROMPT SET ECHO ON

-- selection de tous les objets en status invalide
-- et génération de la ligne de commande pour les compiler 
-- suivi d'un 'show error ' dans le script
SELECT 'alter '||
       decode(object_type, 'PACKAGE BODY','PACKAGE',object_type) ||
       ' '||object_name||
       ' compile '||decode(object_type,'PACKAGE','PACKAGE', 'PACKAGE BODY','body',null)
       ||chr(10)||'/'||chr(10)||'show errors'
 FROM user_objects
WHERE object_type IN ('PACKAGE','PACKAGE BODY','VIEW', 'FUNCTION','TRIGGER','PROCEDURE')
  AND status = 'INVALID'
ORDER BY decode(object_type,'VIEW',1,
                            'FUNCTION',2,
                            'PROCEDURE',3,
                            'PACKAGE',4,
                            'PACKAGE BODY',5,
                            'TRIGGER',6,7)
/
PROMPT SET ECHO OFF
-- on ferme le script généré
SPOOL OFF

-- création d'un fichier log pour archivé les SHOW ERROR après chaque compilation
SPOOL ${ORACLE_SID}_compile.log

-- execution du script généré
@${ORACLE_SID}_compile.sql

SPOOL OFF
REM

-- et enfin on affiche de nouveau les objets toujours 
-- en statu 'INVALIDE' après la compilation

SET PAGESIZE 500
TTITLE 'Invalid Objects'
COLUMN c format a70 HEADING 'Object_name(Object_type)'

SELECT object_name||'('||object_type||')' c 
  FROM user_objects 
 WHERE status='INVALID'
ORDER BY object_type,object_name;

 Conclusion

Voilà, c'est un petit script sans prétention mais bien utile.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

23 juin 2005 13:16:56 :
N/A

 Sources de la même categorie

CAPTURE DES CHANGEMENTS DE DONNÉES (CDC: CHANGE DATA CAPTURE... par wissemhabboub
INTERPRETEUR BRAINFUCK par coucou747
CRÉATION D'UNE BASE DE DONNÉE AVEC FICHIER DE DONNÉES, JOURN... par fearmaker
MYSQL : CRÉATION D'UN GUID par maitredede
SQL SERVER 2005 : OBTENIR LA LISTE DES BASES DE CONTENU D'UN... par fabrice69

 Sources en rapport avec celle ci

[ORACLE]DÉTERMINER LA DATE DU PREMIER JOUR D'UNE SEMAINE PAR... par Bouillou2
REQUÊTE SQL POUR DÉTERMINER L'ESPACE OCCUPÉ DANS LES TABLESP... par sgoriaud
AJOUT , SUPPRESSION INTERVALLE DE TEMPS EN PLSQL par lamjed
REQUETE SUPPRESSION DE DOUBLON SOUS ORACLE par lamjed
PACKAGE ORACLE -- OUTILS APPLICATIFS par sgoriaud

Commentaires et avis

Commentaire de SilverGames le 24/07/2006 18:21:37

Bonjour,

Oui cela peut être utile.

Mais... as-tu déjà essayé ceci :
========

BEGIN
    DBMS_UTILITY.compile_schema(schema => 'NOM_DE_TON_SCHEMA');
END;

Cela recompile tous tes objets invalides.

@++
SilverGames.

========

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Message d'erreur lors de la génération de form par Oracle Designer [ par chryssR ] Bonjour, J'utilise une Base de Données Oracle 9i (version 9.2) et des outils de développement sur Oracle Developper Suite (version 9.0.2). Apparament oracle forms erreur [ par 14hal ] salut tout le monde;Bon je suis que  débutante en oracle et lorsque j'exécute il me génère cette erreur "veuillez accuser reception du message"et quan erreur ora-01789 sous oracle [ par Jordan59 ] Bonjour à tous,Je rencontre une erreur sur des requêtes vers une base de données Oracle, à savoir :ORA-01789 : query Block has incorrect number of res Restauration erreur de réseau général [ par sylvie49 ] Bonjour, je restaure une base de données et une fois la restauration terminée (et OK), dès le 1er ordre sql, j'ai une sql exception :"Erreur de réseau Oracle-Hibernate - Violation de protocole :( [ par DARKSIDIOUS ] Salut les amis,J'utilise Hibernate dans un projet web J2EE avec une base oracle. J'essaye de faire une requête toute simple : récupèrer un objet de ty Problèmes d'installation sqlserver2005 sur vista [ par jado ] Salut,J'ai un problème lié a l'installation de sqlserver 2005 express sur vista, j'ai l'erreur suivante Windows Installer a rencontré une erreur inatt faire une gestion avec oracle forms [ par chocho36 ] salut tout le monde!je suis une etudiante.. je dois faire une application en utilisant ORACLE FORMS ...y a t il un tutoriel ou une application faite p Pas d'erreur de syntaxe mais pourtant il y à un problème [ par arkonara ] Bonjour à tous, mon probleme est le suivant, dans un formulaire je recupere les valeurs des champs pour effectuer une requete vers ma base. la recup d'une base sql server vers base oracle [ par laymouna98 ] salut à tous j'ai pas mal de temps que je cherche une solution pour créer une base de données oracle à partir d'une base de donnée sql server j'a Pour les anciens : Ecrire des écrans pour VT 220 pour SGBDR ORACLE [ par bruno9173 ] Bonsoir,je vais devoir réécrire et écrire de écrans pour l'émulateur VT220.Comment fait-on pour les écrire ? Quel langage ?Actuellement j'ai une gross


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales