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

Oracle Discussion :

[Vue][Parametre] Passage de paramètres dans une vue (intégré FAQ)


Sujet :

Oracle

  1. #1
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut [Vue][Parametre] Passage de paramètres dans une vue (intégré FAQ)
    Hello

    j'aimerais savoir s'il est possible de passer un paramètre à une vue dans Oracle, et si oui avec quelle syntaxe ?

    Merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Une vue est une requête SQL qui prend la forme d'une table

    donc vous pouvez spécifier des paramétres lorsque vous construisez votre vue , sinon lorsque vous interroger cette vue comme une table

  3. #3
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    t'aurais pas un petit exemple de code des fois ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut


    Il faut passer par des variables globales déclarées dans un package spécifique

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    un exemple de création et de requettage sur des vues ?

    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
     
    SQL> select * from dvp ; 
     
             A
    ----------
             1
             2
            50
            25
     
    SQL> create view dvp_vw as ( select * from dvp where a < 10) ;
     
    Vue créée.
     
    SQL> select * from dvp_vw ; 
     
             A
    ----------
             1
             2
     
    SQL> select * from dvp_vw where a=1 ;
     
             A
    ----------
             1

  6. #6
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    et ?

    j'avais oublié de préciser je suppose mon niveau en SQL sous Oracle, proche du zéro, alors variable globale de package ... j'en ai entendu parler mais....

    Donc si tu pouvais me poster un exemple de code ou du moins un lien qui ne me raconte pas la bible, ce serait sympa

    PS : pour info j'ai cherché dans le forum avant de poster, mais pas trouvé ! recherche sur "passage parametres oracle vue" :

  7. #7
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    un exemple de création et de requettage sur des vues ?
    non un exemple de passage de paramètre à une vue. Je dois faire une requête en utilisant une vue que j'aimerais rendre un petit peu dynamique en lui passant un paramètre.

    merci

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    est ce que tu peut être plus précis , quoi comme paramétre ??

    peux tu donner un exemple ?

  9. #9
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Re: [Vue][Parametre] Passage de paramètres dans une vue
    Citation Envoyé par Tueur_a_gage
    j'aimerais savoir s'il est possible de passer un paramètre à une vue dans Oracle, et si oui avec quelle syntaxe ?
    Si c'est sous SQL*Plus, tu peux utiliser le caractère &, qui te permet de remplacer la chaîne suivante ce & par ce que tu veux.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> SELECT &MaDate FROM DUAL;
    Entrez une valeur pour madate : SYSDATE
    ancien   1 : SELECT &MaDate FROM DUAL
    nouveau   1 : SELECT SYSDATE FROM DUAL
     
    SYSDATE
    --------
    17/06/05
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  10. #10
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    pas sous SQL Plus, dans une VUE

  11. #11
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Tiens voilà un exemple trouvé sur le forum
    http://www.developpez.net/forums/vie...ht=vue+package
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Bon, d'abord qu'est ce qui va exécuter la vue ?

  13. #13
    Membre du Club Avatar de Tueur_a_gage
    Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 77
    Points : 59
    Points
    59
    Par défaut
    Impect merci

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Voici la méthode avec un package :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE OR REPLACE PACKAGE orafrance
    AS
       param1   VARCHAR2 (30);
     
       FUNCTION get_param1
          RETURN VARCHAR2;
    END;
    /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR REPLACE PACKAGE BODY orafrance
    AS
       FUNCTION get_param1
          RETURN VARCHAR2
       AS
       BEGIN
          RETURN param1;
       END;
    END;
    /
    Je crée ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE OR REPLACE VIEW v_orafrance
    AS
       SELECT *
         FROM all_tables
        WHERE table_name = UPPER (orafrance.get_param1);
    Pour utiliser cette vue, il faut d'abord que j'initialise le paramétre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> execute orafrance.param1 := 't_orafrance';
    Et magie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> select table_name from v_orafrance;
     
    TABLE_NAME
    ------------------------------
    T_ORAFRANCE

    Est-ce que c'est clair ?

  15. #15
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par plaineR
    Tiens voilà un exemple trouvé sur le forum
    http://www.developpez.net/forums/vie...ht=vue+package


    sauf que ça ne marchait pas et apparemment ceci est impossible :

    CREATE OR REPLACE VIEW ma_vue AS
    SELECT ma_col FROM ma_table
    WHERE ma_col = list_variable.ma_variable;
    il faut passer par une fonction

  16. #16
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par orafrance
    il faut passer par une fonction
    Oui, je sais c'est ce que tu avais indiqué à la fin de ce post (en page 2)
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  17. #17
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Exact

    J'en profite pour répondre à la question du post cité : Une table de paramétrage n'est intéressante que si tout le monde partage les mêmes paramètres. Mais si par exemple le paramétre est le nom d'utilisateur (pour les habilitations entre autre ) alors on n'a pas le choix, il faut passer par le package ainsi la valeur n'est vue que dans la session courante

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server 2000] ajouter une colonne identité dans une vue?
    Par CetTer dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/08/2005, 13h43
  2. Count dans une vue
    Par gldfdp dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/07/2005, 05h55
  3. Paramètres possibles dans une vue ms sql server
    Par lutin2003 dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 30/03/2005, 19h03
  4. Insérer dans une Vue ordonnée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/09/2004, 15h27
  5. Réponses: 4
    Dernier message: 03/03/2004, 11h04

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