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 11/06/2004, 18h24   #1
Invité régulier
 
Inscription : juin 2004
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 12
Points : 5
Points : 5
Par défaut [plpgsql] transaction dans les fonctions ?

bonjour ,

j'aimerai savoir si il possible d'utiliser les transactions dans notre propre fonction postgresql ?
Car lorsque je l'utilise :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
CREATE OR REPLACE FUNCTION my_test(character varying, integer, character varying, integer, character varying, character varying, character varying, character varying) RETURNS integer AS '
DECLARE
var_code_famille integer;
BEGIN
 BEGIN WORK;
 var_code_famille := SELECT nextval(''seq_code_famille'');
 INSERT INTO TBL_FAMILLE VALUES(var_code_famille, $1, $2, $3, $4, $5, $6, $7, $8);
 [.... autre insert]
 COMMIT WORK;
 RETURN var_code_famille;
END;
' LANGUAGE plpgsql;
j'ai l'erreur suivante :
Citation:
ERROR: syntax error at or near ""
Merci
A+
hpghost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2004, 11h01   #2
Membre confirmé
 
Inscription : octobre 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 266
Points : 287
Points : 287
Salut,

Avec quoi l'executes-tu ? dans le shell ? dans un requeteur ? sous Windows ? sous linux ? via ODBC ?

@+
Krapulax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2004, 14h39   #3
Invité régulier
 
Inscription : juin 2004
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 12
Points : 5
Points : 5
Salut !

Mes fonctions je les tappe sous PhpPgAdmin.
Parcontre, je les appel en php :
Code :
1
2
3
4
5
6
 
$sql = "SELECT my_test(var1, var2, ....)"
$result = pg_query($result, $sql);
 
IF (!$result)
die (pg_last_error($db);
et j'obtiens :
Citation:
ERROR: syntax error at or near ""
Et des que je n'utilise pas les transactions => j'ai plus d'erreur....
Alors docteur ?

merci,
a+


hpghost est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2004, 16h56   #4
Membre chevronné
 
Avatar de Spoutnik
 
Homme
Inscription : octobre 2003
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : Etats-Unis

Informations forums :
Inscription : octobre 2003
Messages : 668
Points : 746
Points : 746
pas sur, mais de memoire, tu ne peux pas mettre une transaction dans un procedure. il me semble que la procedure est elle meme une transaction , ce qui reviendrait a faire des transactions imbriquees...

A verifier, mais je n ai pas trouve de transactions dans des procedures.

++
__________________
Two beer or not two beer. (Shakesbeer)
Question technique par MP => poubelle!
Spoutnik est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h22.


 
 
 
 
Partenaires

Hébergement Web