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

SQL Oracle Discussion :

définition des constantes à inclure dans plusier proc stoc


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut définition des constantes à inclure dans plusier proc stoc
    Bonjour,

    J'ai actuellement un package où je définis mes constantes et mes variables dans le spécifications :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE OR REPLACE PACKAGE PKG_REPORT_ARIANE 
    AUTHID CURRENT_USER
    AS
    -- TYPE PROFIL
    code_audit			NUMBER(1)	:= 1;
    code_inspection			NUMBER(1)	:= 2;
    code_admin			NUMBER(1)	:= 3;
    Or je travaille avec une équipe qui est également appelée à utiliser ces variables, est-il possible de centraliser l'ensemble de celle-ci pour que chacun puisse y accéder et les utliser dans son code.
    Ceci permettrait également de n'intervenir que sur un fichier pour modifier leur valeurs.

    merci

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    A partir du moment ou chaque schéma est autorisé à excécuter votre paquetage ( GRANT EXECUTE ON mon_package TO nom_schema), ces utilisateurs pourront interroger vos variables globales avec la syntaxe suivante :

    nom_schema.nom_paquetage.nom_variable

    ou si vous créez également un synonyme :

    nom_synonyme.nom_variable
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    tout à fait

    la littérature y fait souvent référence en parlant de "package de variables magiques"

    tu crées un package et dans ses spécifications, tu déclares tes constantes

    tu donnes les droits sur ce package et le tour est joué

    mais il me semble que c'est ce que tu fais déjà ... où est le problème?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    la finalité serait de sortie les varaibles de mon package et des les inclure dans un package, une procédure ou un fichier, et que celui-ci soit appelé par les scripts de toute l'équipe.

    ceci permettrait donc de changer les valeurs plus facilement que si c'est mon package, qui correspond à une partie bien à part du projet sur lequel je travaille.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    faire les grants nécessaires sur ton package ! le plus simple et le plus efficace : une fois appelé, tout le package est en mémoire (gain de temps)

    je suppose que vous êtes sur la même instance ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    oui, mais je pense que l'idée du package est valable, le seul a priori que j'ai est que il faudrait pluto faire un nouveau package contenant ces variables??? Es t il possible que celuici ne contienne que ça???(et pas de codes??)

    merci

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    bien sûr , c'est cela un package de variables "magiques"

    désolé de n'avoir pas été assez clair dans mon premier post

    un package peut effectivement ne contenir que des specifications (certains y stockent même des curseurs -- à ce niveau là une vue me semble plus adéquate)

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    ok merci

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    si je fais un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from REF_TYPE_PROFIL where ID_TYPEPROFIL = ARIANE_CONST.TYPEPROFIL_AUDIT;
    avec ariane_const mon package où ma variable TYPEPROFIL_AUDIT est définie, j'obtiens le message d'erreur suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-06553: PLS-221: 'TYPEPROFIL_AUDIT' n'est pas une procédure ou est indéfini
    pourquoi??

    merci

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Parce que cette variable globale n'est pas définie dans la partie spécifications de votre paquetage.

    pouvez-vous envoyer cette partie spécifications ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    la partie sepcifications est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    create or replace package ARIANE_CONST 
    is
     
     -- Types de profil utilisateurs
      TYPEPROFIL_AUDIT constant NUMBER(1) := 1;
      TYPEPROFIL_IG    constant NUMBER(1) := 2;
      TYPEPROFIL_ADMIN constant NUMBER(1) := 3;
    ....
    Est-ce le "constant" ???

  12. #12
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    que donne la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select ARIANE_CONST.TYPEPROFIL_AUDIT From Dual ;
    ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-06553: PLS-221: 'TYPEPROFIL_AUDIT' n'est pas une procédure ou est indéfini
    même, est-ce que cela veut dire qu'il faut l'appeler depuis une procédure impérativement

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    je ne comprends rien je viens de l'appeler depuis une procédure inclue dans un autre package et là ça passe. Ce n'est pas normal!!?

  15. #15
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Cela veut dire que cette variable ne peut être lue que depuis un bloc PL/SQL
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    ok ce n'est pas une des meilleures explications que vous m'ayez donné, mais je suis assez d'accord donc je ne vais pas en demander plus.

    Merci

  17. #17
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    effectivement, il me semble que seules les fonctions PL/SQL (sous certaines conditions / purity level) sont permises dans un ordre sql

  18. #18
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par ghostlord79
    ok ce n'est pas une des meilleures explications que vous m'ayez donné, mais je suis assez d'accord donc je ne vais pas en demander plus.

    Merci
    Désolé, mais je ne pouvais pas deviner que vous vouliez interroger une variable de paquetage à partir d'une requête SQL pure.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  19. #19
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    c'est pas grave, et ma réponse n'était pas un reproche

    merci

  20. #20
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Mais je n'ai pas dis mon dernier mot, car vous pouvez très bien écrire une fonction dans votre paquetage qui retourne la valeur de la variable globale désirée.

    Et là, vous pouvez utiliser le retour de cette fonction dans votre ordre SQL ! (Arf)
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Gestion des headers avec % dans une proc template
    Par jetli0105 dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 26/08/2011, 09h45
  2. [NetBeans] Inclure des package externes dans mon jar
    Par JavaEli dans le forum NetBeans
    Réponses: 4
    Dernier message: 13/03/2011, 20h34
  3. Utilisation du C# dans une proc stoc
    Par gluc86 dans le forum Développement
    Réponses: 4
    Dernier message: 18/09/2008, 12h04
  4. Réponses: 1
    Dernier message: 08/08/2008, 17h12
  5. inclure des .H C dans un prog C++
    Par hitchie dans le forum MFC
    Réponses: 5
    Dernier message: 29/09/2005, 21h24

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