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 :

[debutant] Postgres et les procedures stockees


Sujet :

PostgreSQL

  1. #1
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut [debutant] Postgres et les procedures stockees
    Bonsoir,

    Decouvrant Postgres, quelle est la syntaxe pour realiser l'equivalent des procedures stockees de Ms SqlServer ?

    Quel outil GUI utiliser pour Linux ? pour Windows ?
    (petite machine,=pas de serveur web)

    Merci d'avance, de pallier a ma deficience en anglais, et a+

  2. #2
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Bonjour,

    Voici une syntaxe simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE FUNCTION one() RETURNS integer AS '
         SELECT 1 AS result;
     ' LANGUAGE SQL;
    Je te conseille néanmoins la lecture du chapitre 33.3. User-Defined Functions, au moins pour les exemples.


    Question GUI, j'utilise Aqua Data Studio qui a l'avantage d'être gratuit pour un usage personnel et présent sur de nombreuses plateformes.

    @+

  3. #3
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    merci de vos reponses,

    Donc, pas de "CREATE PROCEDURE ... " ?

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 209
    Points : 249
    Points
    249
    Par défaut
    Non les procédures stockées n'existent pas. Mais une procedure est une function qui ne retourne rien (enfin rien d'util)!

  5. #5
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par Bouboubou
    Non les procédures stockées n'existent pas. Mais une procedure est une function qui ne retourne rien (enfin rien d'util)!
    Qui ne retourne rien ? C'est a dire ?
    Ne retournera pas un entier, utilisable comme code retour ?
    Ne retournera pas le resultat d'un select ?

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 209
    Points : 249
    Points
    249
    Par défaut
    Si tu souhaites utiliser une procédure c'est que tu souhaites faire certaines choses qui n'ont pas besoin d'être validée vis-à-vis du code appelant. Donc si dans ta fonction tu écris qqch comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE FUNCTION exemple(integer,integer,...) RETURNS integer AS ' 
    begin
    -- là fait ce que tu veux puis
    return 1;
    end;
     ' LANGUAGE 'plsql';

    Dans ce cas, la fonction retourne tjs 1. C'est donc une procédure puisque l'information qu'elle retourne n'est en soit pas utile. Ou je n'ai peut-être pas bien compris ton problème

  7. #7
    Membre actif

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 209
    Points : 249
    Points
    249
    Par défaut
    Tu peux encore retourner 1 si la fonction c'est passé sans problème et 0 dans le cas contraire. Mais c'est pas utile de faire cela chaque fois.

    Personnellement je fais comme cela chaque fois que je souhaite créer une procédure. Peut-être qu'il y a un meilleurs moyen, si jamais cela m'intéresse.

  8. #8
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Une FUNCTION permet de retourner un SELECT (l'ensemble des enregistrements), par exemple ?

  9. #9
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    C'est possible mais on préfère les vues dans ces cas-là.

  10. #10
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Les functions semblent + proches de l'esprit des procedures, non ?
    Le but des vues est d'avoir un jeu de donnees specifiques.

    Ma question sous-entend d'avoir des parametres en entree, du code a l'interieur, et de produire un resultat, soit sous forme d'entier, comme le signale bouboubou, soit, et ceci est la question, sous forme d'un ensemble de donnees, dependantes des parametres en entree, et du code.

    Recap:
    Les functions, comme les procedures, executent du code
    Les functions, comme les procedures, produisent un entier en return

    Questions:
    Les functions acceptent-elles des parametres en entree ?
    Les functions peuvent elles produirent en sortie des ensembles de donnees, donnees resultants du code et des parametres en entree ?

    (Desole de poser des questions, mais je ne peux pas disposer, la où je suis, de PostGreSql ...)

  11. #11
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Les functions acceptent-elles des parametres en entree ?
    Oui

    Les functions peuvent elles produirent en sortie des ensembles de donnees, donnees resultants du code et des parametres en entree ?
    Oui

    D'ailleurs, voici un exemple tiré de la doc Chapitre 33.4.4. SQL Functions Returning Sets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE FUNCTION getfoo(int) RETURNS SETOF foo AS '
         SELECT * FROM foo WHERE fooid = $1;
     ' LANGUAGE SQL;
    @+

  12. #12
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 150
    Points : 77
    Points
    77
    Par défaut
    Parfait !

    Donc, avec pg, functions ou procedures, meme combat !

    Merci de votre aide, et a + !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/10/2007, 14h58
  2. [debutant]Comment editer une procedure Stockee
    Par smutmutant2003 dans le forum SQL
    Réponses: 4
    Dernier message: 28/06/2007, 12h18
  3. Application : Les procedures stockées sont-elles inévitables ?
    Par nytmare dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 19/11/2006, 18h49
  4. Access et les procedures stockees sur sql server
    Par ouazou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/09/2005, 13h08
  5. [VB6] [ADO] Procedure stockée : spécifier les paramètres
    Par adepdoom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 10h45

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