IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

auto recompile


Sujet :

Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut auto recompile
    Bonjour,

    à chaque fois qu'on ajoute une colonne à une table tous les packages et les vues qui la referencient deviennent invalides et il faut les recompiler un à un. Ya t-il une façon d'eviter ça ou de rendre le recompilation des objects automatique :

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    utilise le script
    \rdbms\admin\utlrp.sql qui te permet de recompiler tout les objets invalides de la base.

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Aux dernières nouvelles, la recompilation est déjà automatique.
    Si effectivement, la modification d'un objet invalide les objets qui y font référence, comme des vues ou des procédures, ces objets dépendants sont recompilés automatiquement, mais au moment de leur utilisation seulement.
    Donc si les objets modifiés restent structurellement cohérents vis à vis de ceux qui les référencent, la question de la recompilation est transparente à l'usage.

    Rencontrez-vous un problème à l'exécution ?

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    merci helyos,

    je ne cherche pas un script qui recompile mes objects, mais une façon de d'eviter que les objects deviennent invalides alors qu'en realité ils sont toujours valides (mais il faut les recompiler).
    Ou bien rendre la recompilation automatique au niveaU oracle.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    Pour les applications qui utilisent les vues OUI il ya des problemes
    pour les procedures je ne sais pas encore.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Par défaut
    et bien en fait oracle recompile automatiquement les objets invalides lorsque ceux ci sont appelé.

    Imaginons l'exemple suivant
    une procedure A fait un appel vers une procédure B

    Si la procedure A deviens invalide il ne se passe rien pour la procédure B.
    par contre si la procédure B deviens invalide à la suite d'une modification d'une table dont elle se servait par exemple. La procédure A sera alors automatiquement invalidée.
    cependant elle sera automatiquement recompilée lors de son appel et recompilera automatiquement les objets dépendant

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    Le probeleme est que la recompilation qui est sensée se faire automatiquement à l'appel de la procedure invalide ne se fait pas et les applications ne fonctionnent plus.
    C'est valable pour les vues et pour les procedures (c'est confirmé).

  8. #8
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Billets dans le blog
    1
    Par défaut
    Bonsoir ,

    Je confirme aussi , en oracle 8.1.7 , si une table est modifiée
    les objets ne sont pas recompilés à l' execution de la proc.
    ( la procédure échoue avec une user exception , pas plus d' infos )

    cdlt

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 98
    Par défaut
    notre serveur est un Oracle9i Release 9.2.0.4.0 standard edition sur linux.

  10. #10
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par learn
    Le probeleme est que la recompilation qui est sensée se faire automatiquement à l'appel de la procedure invalide ne se fait pas et les applications ne fonctionnent plus.
    C'est valable pour les vues et pour les procedures (c'est confirmé).
    Ben mince alors !
    Je viens de faire le petit test suivant (pour une vue donc) et ça ne pose pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    create table test (c int, d varchar2(5), e date);
     
    insert into test values (1, 'bidon', sysdate);
    insert into test values (2, 'bidoo', sysdate);
    insert into test values (3, 'bidop', sysdate);
    commit;
     
    create view vtest as select c, e from test;
     
    select * from vtest; --> OK
     
    alter table test drop column d;
     
    select * from vtest; --> OK aussi !
    Est-ce qu'un tel code pose problème chez vous ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [xmlrad] recompilation dll
    Par Pm dans le forum XMLRAD
    Réponses: 3
    Dernier message: 14/01/2003, 13h43
  2. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  3. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10
  4. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 10h31
  5. Réponses: 8
    Dernier message: 17/05/2002, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo