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

PostgreSQL Discussion :

Vues + procédures stockées


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut Vues + procédures stockées
    Bonjour,

    Je voudrais faire appel à des procédures stockées dans des vues, et je ne sais pas vraiment comment m'y prendre.
    Je m'explique...

    D'un côté, j'ai mis en place une procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetResults(character varying);
    - Prend un argument une chaine de caractères
    - effectue de nombreuses modifications (complexes) sur les enregistrements contenant la chaine de caractère donnée
    - rend un ou plusieurs enregistrements

    Et de l'autre côté, je voudrais avoir une vue qui ressemblerait à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE VIEW MyView AS
        SELECT *
        FROM GetResults(val);
    Le but étant qu'un utilisateur puisse faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MyView WHERE val = 'value';

    Une solution simple aurait été :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM GetResults('value');
    ou 
    SELECT GetResults('value') FROM DummyTable;
    Mais seulement pour diverses raisons, il est impossible à l'utilisateur de lancer des procédures de ces deux manières.


    Et donc, je voudrais savoir s'il existe une manière de "cacher" une procédure derrière une vue.

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    le principe d'une vue est justement de n'impliquer que des invariants, c'est donc peu compatible avec celui d'une procédure stockée paramétrée... Je ne vois pas de moyen de concilier les deux.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut
    Merci pour ces premières précisions.

    J'ai peut-être été trop restrictif en parlant directement de vues...
    La question reformulée serait donc :

    Existe-t-il une manière de cacher une procédure derrière quelquechose d'accessible par un
    ?

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Selon moi c'est impossible. Il existe dans PostgreSQL un système de règle qui permettrait notamment de transformer une requête INSERT, UPDATE ou DELETE en un appel vers une procédure stockée, mais rien qui permet de transformer un SELECT conditionnel en un appel vers une procédure stockée.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut
    Pourrais-je avoir plus d'informations sur ce
    "système de règle qui permettrait notamment de transformer une requête INSERT, UPDATE ou DELETE en un appel vers une procédure stockée" ?

  6. #6
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    C'est le système de règles (RULES) qui permet à PostgreSQL de réécrire à la volée une requête. C'est décrit dans la documentation . Mais en l'occurrence ça ne correspond pas à ce que tu souhaites faire.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. les vues procédures stockées et les requêtes…
    Par zakaroh dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 15/05/2008, 22h46
  2. [SQL Server] Le + rapide : 1 vue ou 1 procédure stockée ?
    Par Ekimasu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/02/2006, 19h13
  3. odbc et vues, procédures stockées
    Par jfox dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 14h54
  4. Critères dans Vue et Procédures stockées
    Par DMboup dans le forum Projets ADP
    Réponses: 9
    Dernier message: 20/05/2005, 21h55
  5. Vue et procédure stockée
    Par juelo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2004, 15h52

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