Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/11/2012, 16h35   #1
BaldeckJ
Candidat au titre de Membre du Club
 
Inscription : décembre 2002
Messages : 68
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 68
Points : 13
Points : 13
Par défaut Déclaration constante globale

Bonjour,

Je cherche à déclarer des constantes de manière globale pour pouvoir utiliser ces valeurs de constante dans le SQL/PLSQL depuis n'importe quel endroit (Select, procédure, fonction, ...)
A la recherche d'une solution, j'ai déclaré des constantes dans un package comme suit:

Code :
1
2
3
4
5
6
CREATE OR REPLACE PACKAGE MY_PACKAGE AS 
  TYPE_PDT_DIVERS  CONSTANT INT := 1;
BEGIN
...
 
END;
Mais je ne sais pas comment exploitée ces constantes hors de ce package!
La syntaxe suivante est en erreur :
Code :
SELECT MY_PACKAGE.TYPE_PDT_STANDARD FROM dual;
Merci d'avance pour toute aide
BaldeckJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 23h31   #2
skuatamad
Expert Confirmé
 
Inscription : août 2008
Messages : 1 690
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 690
Points : 2 813
Points : 2 813
Crée une fonction get... dans le package qui simplement return la variable (constante) PL/SQL pour l'utiliser dans du SQL.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 08h27   #3
BaldeckJ
Candidat au titre de Membre du Club
 
Inscription : décembre 2002
Messages : 68
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 68
Points : 13
Points : 13
Oui, c'est déjà ce que l'on fait, mais n'y a t-il pas une solution qui s'appuie sur la déclaration de constantes et éviter de créer autant de fonctions que de constantes à mettre à disposition ?
BaldeckJ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 09h31   #4
mnitu
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 4 104
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 4 104
Points : 8 000
Points : 8 000
Tant que vous restez dans le PL/SQL ça marche.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Connected TO Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 
Connected AS mni
 
SQL> SET serveroutput ON
SQL> 
SQL> Declare
  2    l_intvar int;
  3  Begin
  4    SELECT my_package.TYPE_PDT_DIVERS
  5      INTO l_intvar
  6      FROM dual;
  7    --
  8    Dbms_output.put_line('constante = '||l_intvar);
  9  End;
 10  /
 
constante = 1
 
PL/SQL procedure successfully completed
 
SQL>
Sinon peut être utiliser un contexte.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h50.


 
 
 
 
Partenaires

Hébergement Web