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 :

Des procédures stockées pour optimiser les tps de réponses


Sujet :

PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Des procédures stockées pour optimiser les tps de réponses
    Bonjour,

    Je voudrais remplacer les requêtes PostGreSQL d'un script PHP par des appels directs à des procédures stockées (de façon à optimiser les temps de réponses).

    Jusqu'ici rien de bien extraordinaire...dans le monde des bases de données.

    ...Seulement, débutant en PostGreSQL, je me perds dans la doc sans réussir à créer une procédure stockée retournant plusieurs enregistrements...(tout comme ma requête SELECT dans le script PHP).

    Est-ce si difficile ? Dois-je créer obligatoirement un nouveau type (comme j'ai cru le comprendre, ce qui signifie créer deux fonctions supplémentaires) ?

    Merci pour votre aide

    Ghislain

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,
    Est-ce si difficile ?
    Non
    Dois-je créer obligatoirement un nouveau type (comme j'ai cru le comprendre, ce qui signifie créer deux fonctions supplémentaires) ?
    Non
    La doc PostgreSQL est peu pratique pour comprendre comment créer des procédures stockées (ou Set Returning Functions dans le jargon Postgres). Je te conseille donc le lien suivant :
    http://techdocs.postgresql.org/guide...rningFunctions
    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
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup....Il y a effectivement sur cette page pas mal de choses intéressantes.

    MAIS

    Etant donné que je ne retourne pas tous les champs d'une table (et même seulement quelques champs de deux tables différentes), je dois créer un type (comme intdiqué sur cette page).

    SEULEMENT

    la synthaxe utlilisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create type navigation as (NavId integer, NavParent integer, NavIcon integer, NavLevel smallint, NavNbDoc integer,NavTitle text);
    donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR:  parser: parse error at or near "as"
    Autre détail pas très évident pour moi, lorsque je cherche la syntaxe de cette fonction sur le net dans la doc officielle de PostGreSQL, je trouve ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TYPE typename ( INPUT = input_function, OUTPUT = output_function
          , INTERNALLENGTH = { internallength | VARIABLE }
        [ , EXTERNALLENGTH = { externallength | VARIABLE } ]
        [ , DEFAULT = "default" ]
        [ , ELEMENT = element ] [ , DELIMITER = delimiter ]
        [ , SEND = send_function ] [ , RECEIVE = receive_function ]
        [ , PASSEDBYVALUE ]
        [ , ALIGNMENT = alignment ]
        [ , STORAGE = storage ] )
    et là je dis KESAKO ? pourquoi la page de doc indiquée me donne une syntaxe diffénente de la doc officielle (pour la même version de PostGreSQL) ? Y a-t-il autre chose que je n'ai pas compris ?

    Merci encore!

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Quelle version de PostgreSQL utilises-tu ?
    Parce que la définition des types composites existe depuis la version 7.3 :
    CREATE TYPE typename AS
    ( column_name data_type [, ... ] )
    A vue de nez, la syntaxe de ta commande est correcte, le problème peut donc venir de ta version...
    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
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ben voilà, merci c'est ça...Zut et flutte...j'ai une 7.2!

    Y a-t-il un moyen de se débrouilleur quand même en 7.2 ou dois-je envisager rapidement une petite migration ?

    Merci
    Ghislain

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Avec la 7.2, à moins d'écrire directement tes fonctions en C (et encore, je ne sais même pas si tu peux renvoyer un jeu d'enregistrement), je ne vois pas trop comment tu pourrais faire ...
    Je te conseille donc vivement le passage en 7.3 (personnellement, c'est la possibilité de créer des procédures stockées qui m'a décidé à migrer)
    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. [2005] Problem procédure stockée pour corriger les périodes de validité
    Par bouboumimi dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 02/08/2014, 16h51
  2. Liste des procédures stockées pour un role donné
    Par serge benhamou dans le forum Développement
    Réponses: 4
    Dernier message: 22/11/2010, 14h24
  3. Procédure Stockée pour créer des TABLE dynamiquement
    Par GuyverZ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/05/2009, 22h29
  4. Réponses: 2
    Dernier message: 28/05/2006, 23h31

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