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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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 confirmé
    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
    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

  3. #3
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    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
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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 émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    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
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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 émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    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
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Par défaut
    ok merci

  9. #9
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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 confirmé
    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
    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 ?

  11. #11
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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 confirmé
    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
    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 ;
    ?

  13. #13
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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 confirmé
    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
    Par défaut
    Cela veut dire que cette variable ne peut être lue que depuis un bloc PL/SQL

  16. #16
    Membre éclairé Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Par défaut
    bonjour, en fait je suis tout nouveau dans Oracle Forms, j'ai une petite problème c'est que je ne trouve pas comment accéder à une variable que j'ai déclarer dans un package. N'est elle pas supposé être globale et donc je peux l'accéder en faisant nom_package.nom_variable? Merci de me répondre ...

  17. #17
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Meme question aujourd'hui même !
    http://www.developpez.net/forums/sho...d.php?t=442827

  18. #18
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    Ou vous pouvez créer un type (Oracle10)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    CREATE OR REPLACE Type PKG_REPORT_ARIANE as object(
    -- TYPE PROFIL
    code_audit			NUMBER(1),
    code_inspection			NUMBER(1),
    code_admin			NUMBER(1),
    CONSTRUCTOR FUNCTION PKG_REPORT_ARIANE RETURN SELF AS RESULT
    )
    /
     
    CREATE OR REPLACE Type BODY PKG_REPORT_ARIANE AS
      CONSTRUCTOR FUNCTION PKG_REPORT_ARIANE RETURN SELF AS RESULT IS
      BEGIN
    	self.code_audit			:= 1;
    	self.code_inspection		:= 2;
    	self.code_admin			:= 3;
            RETURN ;
      END;
    END;
    /
     
    select PKG_REPORT_ARIANE().code_audit from dual
    /
    PKG_REPORT_ARIANE().CODE_AUDIT
    ------------------------------
                                 1

  19. #19
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    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

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

+ 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