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 :

Newby : erreur syntaxe


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Enseignant chercheur retraitée
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant chercheur retraitée

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Newby : erreur syntaxe
    Bonjour,
    J'ai besoin de faire, automatiquement si possible, un grand nombre d'insert dans une base.
    Voici (quasiment) ma première function pl/pgsql, qui me sort :
    ERROR: syntax error at end of input at character 8
    CONTEXT: PL/pgSQL function "majmeta" line 18 at return

    Voici ma fonction
    (je l'appelle avec select majmeta('ctlf_000000001_1967_mon_54214_1');

    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
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE OR REPLACE FUNCTION "public"."majmeta" (text) RETURNS text AS
    '
    DECLARE
      rec record;
      curs refcursor;
      metaid integer; 
    BEGIN
      SELECT metanames.metaname_id INTO metaid
      FROM  section_metaname_roles, metanames  
      WHERE metanames.metaname_id=section_metaname_roles.metaname_id 
            AND section_metaname_roles.section_id IN 
                        (SELECT section_id from sections WHERE code_role=\'issue\' and issue_id = $1) ;
      OPEN curs FOR SELECT  section_id  from sections where sections.issue_id = $1 and code_role != \'issue\' ;
          LOOP
             FETCH curs into rec;
             EXIT WHEN NOT FOUND;
             INSERT INTO section_metaname_roles VALUES(rec.section_id, metaid, 70);
             END LOOP;
       CLOSE curs;
    return;
    END; 
    ' 
    LANGUAGE 'plpgsql' ;
    est ce que quelqu'un pourrait m'aider ?
    d'avance merci

  2. #2
    Membre à l'essai
    Femme Profil pro
    Enseignant chercheur retraitée
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant chercheur retraitée

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Désolée
    Je réponds moi-même à ma question:
    j'avais écrit sans réfléchir "RETURNS text" dans la déclaration de la fonction, mais return; seulement à la fin (car je n'attendais pas de réponse !

    Dans la déclaration, je mets : "RETURNS boolean"

    et je termine par un "return TRUE" ... et ça marche

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

Discussions similaires

  1. Erreur syntaxe
    Par Anduriel dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/12/2005, 19h45
  2. [erreur syntaxe]
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/11/2005, 15h49
  3. Erreur syntaxe
    Par diaboloche dans le forum Langage
    Réponses: 12
    Dernier message: 19/10/2005, 16h47
  4. erreur syntaxe dans requete
    Par dom - ien moutiers dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/04/2004, 11h54
  5. [EXISTS] Version MySql ou erreur syntaxe ?
    Par Kimael dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/04/2004, 17h30

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