Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2007, 13h55   #1
Membre actif
 
Inscription : septembre 2003
Messages : 83
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2003
Messages : 83
Points : 191
Points : 191
Par défaut recompilation automatique des objets invalides

bonjour,

Depuis que j'utilise la 10g, la recompilation automatique des objets automatique se comporte différemment. Désormais, les sessions qui étaient ouvertes lors de la compilation d'un package doivent sortir complètement de leur session pour en ouvrir une nouvelle .

Sur les précédentes versions d'oracle, il suffisait de valider le message indiquant que l'objet était invalide, et la recompilation n'imposait pas de sortir de sa session.

Est-ce que la base que j'utilise a une configuration particulière ?
ou est-ce la 10g qui impose cela ?

Merci d'avance pour vos réponses
GMI3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2007, 14h52   #2
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Si la compilation touche au body (modification de prototypes de fonctions) et/ou variables du package, tu auras forcement lors du prochain appel au package une erreur car l'instance de ton package au sein de ta session est devenue invalide, cela quelque soit la version du serveur.
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 16h56   #3
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Je corrige
Citation:
Si la compilation touche au body (modification de prototypes de fonctions) et/ou variables du package
En fait c'est si tu modifies les SPEC (prototype) que les objets référencées par le package sont invalidés.
Si tu touche au "body" (??), il ne se passe rien.
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 17h12   #4
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Effectivement, mon clavier a fourché !

C'est bien aux spécifications de packages et non aux corps de packages auxquelles je faisais référence !

Désolé si j'ai induis certains en erreur !
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 18h30   #5
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Je confirme que si package contient une variable de session, il y a erreur en 9i ou en 10g même si la spec. du package n'est pas modifiée. Voir les scénarios que j'ai posté sur OTN.
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 21h18   #6
Membre actif
 
Inscription : septembre 2003
Messages : 83
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2003
Messages : 83
Points : 191
Points : 191
Merci pour vos infos.
Je vais y perdre énormément en terme de souplesse. Tous mes packages ont une variable globale qui précise le nom du package lui-même.

Y a-t-il une solution pour éviter ce mode ?
C'est très lourd pour les modifs en "live"
GMI3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 09h22   #7
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
- Faire un variable "privée" (cad non déclarée dans les spec) : ex NomProc
- Faire une fonction "publique" (cad déclarée dans les specs) qui te retourne la valeur de cette variable (ex : GetNomProc )
Tu pourras ainsi modifier la valeur de cette variable sans changer le statut des specs
Au fait, pourquoi dans ton cas ne pas faire une constante ?
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2007, 23h22   #8
Membre actif
 
Inscription : septembre 2003
Messages : 83
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2003
Messages : 83
Points : 191
Points : 191
en fait je pensais plutot à un changement de paramétrage sur oracle .
Il faudrait effectivement changer tous les packages existant mais je pense qu'il y a une bonne raison pour que cette variable soit globale.

Merci pour tes infos et à+
GMI3 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web