PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

pbm installation pl/pgsql

Technique - installation | pbm installation pl/pgsql

Par gilberaix le 05/10/2005 - 10:45

Je ne sais pas si c'est un problème d'installation ou un problème de configuration du pl/pgsql, mais j'ai des soucis avec la gestion des exceptions dans mes procédures stockées.
Imaginons une table "enfant" avec les champs basiques (nom,prénom,etc.)
Ma fonctionpl/pgsql:

create or replace function create_enfant (varchar,varchar) returns boolean as
begin
insert into enfant (nom,prenom) values($1,$2);
exception when others then return false;
return true;
end;
volatile "plpgsql";

A l'ececution j'ai un 'Query failed: ERROR: syntax error at or near "EXCEPTION" CONTEXT...'
En mettant cette ligne en commentaire tout se passe bien (création de l'enfant). Je me pose donc la question à savoir, y'aurait il un soucis de configuration car je sais que postgresql sous windows gère trés bien les exceptions handling (d'ailleurs cette fonction marche bien sous windows) mais sous linux et plus spécifiquement sous debian, mon postgresql me renvoie systématiquement cette erreur.
J'ai essayé plusieurs combinaisons (mettre le récupérateur d'exception à différents endroits du script) rien n'y fait.
Ce n'est pas un problème de scripts c'est certains, alors qu'est ce que ca peut bien être?

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonjour Je connais pas tr

bsimon/ = 6 Octobre, 2005 - 07:38

Bonjour

Je connais pas très bien la gestion eds exceptions en pl/pgsql mais a votre place j'utiliserais la variable FOUND :

INSERT INTO ..... ;

IF NOT FOUND THEN
RETURN FALSE;
END IF;

RETURN TRUE;

Benjamin.


Merci du conseil, il est vrai

gilberaix/ = 6 Octobre, 2005 - 09:14

Merci du conseil, il est vrai que dans ce cas si le "if not found" suffirait, mais j'ai tout de même besoin d'un récupérateur d'exceptions. Car j'utilise des scripts un peu plus complexes où il peut y avoir plusieurs raison que les requêtes ne s'effectuent pas correctement..
- enregistrements non trouvés
- contraintes d'unicité non respectés
- clés étrangères non valides
- valeurs excessifs
- etc.
Et peu importe l'erreur mon script doir retourner "false", car je fais des traitements spécifiques dans mon php.


Bonjour Sous Windows vous

Christophe Chauvet/ = 6 Octobre, 2005 - 15:48

Bonjour

Sous Windows vous devez utiliser la version 8.0.x or sous Debain la 7.4.x

peut etre y'a t'il une différence a ce niveau là

Cordialement.

Christophe Chauvet.


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.