|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2008 Messages : 27 ![]() |
Bonjour à tous,
est ce que quelqu'un pourrais me dire à quoi sert l'utilisation de PRAGMA RESTRICT_REFERENCES pour les fonctions qui seront appelées à partir d'un ordre SQL. les 4 niveaux de pureté sont clairs : RNDS (Reads no database state) RNPS(Reads no package state) WNDS(Writes no database state) WNPS(Writes no package state) mais réellement je ne vois pas ce que peux causer un appel de fonction à partir d'un ordre SQL (je ne crois pas qu'il y aura une modification sur la base !!). ça serais super sympa si quelqu'un peut m'aider à comprendre avec un petit exemple illustratif Merci bien |
|
|
00
|
|
|
#2 | ||||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Une fonction SQL est soumise à certain restrictions et dans les versions d’Oracle antérieurs à la version 8i.1.5 cella ce faisait avec l’aide de la pragma restrict références. Ce modèle permettait de vérifier à la compilation de la fonction son niveau de pureté.
Voilà un exemple : Code :
Regardez ce qui se passe quand on change légèrement la définition de la fonction de la manière suivante Code :
|
||||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2008 Messages : 27 ![]() |
Merci bien mnitu pour votre réponse
![]() Il s'agit donc d'une simple vérification au moment de la compilation (c'est comme une définition de contrainte). |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Attention, cela ne veut pas dire qu’une fonction SQL peut faire n’importe quoi. Des restrictions existent toujours. Mais au lieu de contrôler au niveau de la compilation le contrôle se fait maintenant à l’exécution.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com