Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2007, 09h29   #1
Candidat au titre de Membre du Club
 
Webmaster
Inscription : octobre 2006
Messages : 21
Détails du profil
Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2006
Messages : 21
Points : 12
Points : 12
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 :
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
jobern est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 09h52   #2
Candidat au titre de Membre du Club
 
Webmaster
Inscription : octobre 2006
Messages : 21
Détails du profil
Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : octobre 2006
Messages : 21
Points : 12
Points : 12
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
jobern est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h31.


 
 
 
 
Partenaires

Hébergement Web