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

Problème pour exécuter une fonction pl/pgsql

Technique - général | Problème pour exécuter une fonction pl/pgsql

Par V0r_X le 19/12/2005 - 15:10

Bonjour,

J'ai écrit une fonction pl/pgsql en utilisant PGAdmin. Cette fonction à juste pour but de vérifier si les paramètres qu'elle reçoit existent déjà dans des tables, et de les insérer s'ils n'existent pas. Elle retourne void, et c'est là mon problème. Je n'arrive pas à trouver la commande SQL qui me permette de l'exécuter. Postgres me dit d'utiliser Perform à la place, car la fonction ne retourne rien. Mais si je tape la commande PERFORM ma_fonction(param1, param2, ...) je reçois une erreur : ERROR: syntax error at or near "PERFORM" at character 1.

J'ai cherché dans la doc, et pas moyen de trouverr comment faire. Je précise que cette fonction doit être appelée via un script PHP (je pense que ça ne change rien, il me faut juste la commande SQL pour exécuter la fonction).

Merci d'avance pour votre aide.

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.

Et un simple "select nom_fonc

SAS/ = 19 Décembre, 2005 - 23:25

Et un simple "select nom_fonction(arg1, arg2) ?

Stéphane Schildknecht


Merci de m'avoir répondu.

V0r_X/ = 20 Décembre, 2005 - 14:31

Merci de m'avoir répondu.

C'est ma première chose que j'ai faite, mais Postgres attend quelque chose de la forme SELECT ma_fonction(arg1, ...) INTO ma_variable;
Or, si je fais ça, j'ai une erreur me disant que la fonction retourne void, et que je ne peux donc pas faire select...into...

Merci quand même. Si vous avez d'autres idées...


J'ai trouvé ! Désolé d'

V0r_X/ = 20 Décembre, 2005 - 15:08

J'ai trouvé !

Désolé d'avoir pollué le forum pour rien ;)
En fait l'erreur venait de ma fonction elle-même, dans laquelle je faisais un SELECT sans INTO. Effectivement, j'ai utilisé un PERFORM, et l'appel SELECT ma_fonction(arg1, ...) fonctionne très bien.

Merci à vous.


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