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 :

[prob]Creation de function


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 1
    Par défaut [prob]Creation de function
    CREATE FUNCTION insert(text,integer) RETURNS integer
    AS' DECLARE
    database ALIAS FOR $1;
    val ALIAS FOR $2;
    BEGIN
    INSERT INTO database VALUES (val);
    return 0;
    END;'
    LANGUAGE 'plpgsql';

    J'ai cree cette fonction qui est sensee inserer un element(val) dans la table database. Et j'obtiens tjrs la meme erreur quand j'essai de l'executer (la table test contient un seul champs de type entier)

    pulco => select insert("test",5);
    ERROR: column "test" does not exist

    Quelqu'un saurait il m'expliquer (je debute en postgresql)

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    PostgreSQL utilise des quotes simples pour les chaînes de caractères, donc pour appeler ta procédure stockée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select insert('test', 5);
    Mais ça ne marchera tout de même pas car tu génères une requête dynamiquement avec tes arguments, il te faut utiliser EXECUTE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE OR REPLACE FUNCTION insert(text,integer) RETURNS integer
    AS' DECLARE
    database ALIAS FOR $1;
    val ALIAS FOR $2;
    BEGIN
    EXECUTE ''INSERT INTO '' || quote_ident(database) || '' VALUES ('' || val || '')'';
    return 0;
    END;'
    LANGUAGE 'plpgsql';

Discussions similaires

  1. Prob avec creation de fichier [function.fopen]: failed
    Par noviceman dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2013, 19h44
  2. [MYSQL 4.1.14] Creation de function
    Par noOneIsInnocent dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/07/2010, 14h53
  3. Prob. Creation dynamique de noeuds fils
    Par medanis dans le forum VB.NET
    Réponses: 1
    Dernier message: 30/01/2009, 12h19
  4. [function]probléme a la creation
    Par Rukia dans le forum SQL
    Réponses: 7
    Dernier message: 25/06/2007, 00h16
  5. Prob creation jar avec eclipse
    Par tsyfar dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/02/2007, 17h38

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