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

Requêtes MySQL Discussion :

[ PostgreSQL / PLpgSQL ]


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Par défaut [ PostgreSQL / PLpgSQL ]
    Boujour,

    Je suis en cours de développement d'une appli Web qui repose sur une plateforme Linux avec Apache / PHP / PostgreSQL.

    J'ai souhaité stocker tout le code SQL côté serveur SQL, j'utilise donc les fonctions "stockées" de PostgreSQL.

    Le nombre d'argument que l'on peux passser aux fonctions est limité à 32 (PostgreSQL 7.3.2). Hors, certaines tables ont plus de 32 colonnes ce qui pose un problème lors du passage des arguments à la fonction (ex : fct de Mise à jour, ou fct d'insertion).

    -> Est-il possible de passer un tableau dans un argument ?
    -> La choix de ne pas mélanger PHP et SQL n'est peut-être pas judicieux ?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 5
    Par défaut
    On peut passer des tableaux en argument...

    Je laisse un petit exemple :

    Le bout de code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    $valeur1 = 10;
    $valeur2 = 'Ceci est une chaîne';
     
    $args = $valeur1.',"'.$valeur2.'"';
     
    $query = "SELECT test('{".$args."}'::_varchar)";
    ...
    La fonction PL/pgSQL:

    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
     
     
    CREATE OR REPLACE FUNCTION public.test(_varchar)
      RETURNS int2 AS
    'DECLARE
    	les_args ALIAS FOR $1;
     	Query TEXT;
    BEGIN
    	Query := \'INSERT INTO test (col1,col2) 
    		   VALUES (\' || les_args[1] || \',\'\'\' || les_args[2] || \'\'\');\';
    	EXECUTE Query;
    	RETURN 1;
    END;
    '
      LANGUAGE 'plpgsql' VOLATILE;
    Il y a peut-être mieux comme solution, je n'ai pas encore approfondi le sujet

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

Discussions similaires

  1. [MySQL -> PostGreSQL] Migration
    Par Nepomiachty Olivier dans le forum Administration
    Réponses: 9
    Dernier message: 23/04/2010, 16h33
  2. [Kylix] PostgreSql via ODBC
    Par doykati dans le forum EDI
    Réponses: 3
    Dernier message: 08/02/2007, 10h10
  3. [ PostgreSQL / PLpgSQL ]
    Par FLY_LM dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/12/2003, 11h41
  4. Réponses: 4
    Dernier message: 28/09/2002, 00h00
  5. Réponses: 2
    Dernier message: 30/05/2002, 08h54

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