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 retour de function void non nul

Technique - général | problème retour de function void non nul

Par cli16 le 01/03/2007 - 11:50

Bonjour,

J'ai mis en place une fonction avec returns void qui me permet de faire des insert dans une base. Mon problème est le suivant, cette fonction me retourne une ligne quand je l'exécute alors que je l'ai bien déclarée comme void. Ceci me génère cette erreur : org.postgresql.util.PSQLException: Un résultat a été retourné alors qu'aucun n'était attendu.

J'ai essayé de changer la syntaxe de la fonction, sans trouver celle qui me permet de n'avoir aucune ligne en résultat.

Auriez-vous une solution à mon problème ?

Voici le code de la fonction :

-----------------------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION p_insert_al (
aid_al numeric(15),
aid_mode_reglement numeric(15),
amt_alerte_don numeric(16,5),
aid_al_delegue numeric(15),
aid_cotisation_ad numeric(15),
aid_cotisation_read numeric(15),
acm_al varchar(255),
abl_axea_geo numeric(1),
abl_axea_act numeric(1),
aid_organisme numeric(15),
aid_personne_maj numeric(15),
adt_maj timestamp

) RETURNS void AS $$
DECLARE
lid_journal_ha numeric(15);
lid_journal_vt numeric(15);
BEGIN

SELECT al.id_journal_ha,al.id_journal_vt INTO lid_journal_ha,lid_journal_vt
FROM al
WHERE id_al = -1 ;

--création de l'al dans la table al
INSERT INTO al (id_al,id_mode_reglement,mt_alerte_don,id_al_delegue,id_cotisation_ad,
id_cotisation_read,cm_al,bl_axea_geo,bl_axea_act,id_journal_ha,
id_journal_vt,id_organisme,id_personne_maj,dt_maj
)
VALUES (aid_al,
aid_mode_reglement,
amt_alerte_don,
aid_al_delegue,
aid_cotisation_ad,
aid_cotisation_read,
acm_al,
abl_axea_geo,
abl_axea_act,
lid_journal_ha,
lid_journal_vt,
aid_organisme,
aid_personne_maj,
adt_maj) ;

--création des lignes dans type_vente_al
INSERT INTO type_vente_al(id_type_vente_al,id_type_vente,id_al,id_compte_gene_al,cd_type_vente_al,
lb_type_vente_al,mt_type_vente_al,mt_federation,bl_actif)
SELECT p_getnewid('type_vente_al'),id_type_vente,aid_al,id_compte_gene,cd_type_vente,
lb_type_vente,mt_type_vente,mt_federation,bl_actif
FROM type_vente;
END;
$$
LANGUAGE plpgsql;

-----------------------------------------------------------------------

Merci par avance.

CM

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.

SELECT

SAS/ = 2 Mars, 2007 - 00:11

Bonsoir,

Le select en fin de fonction n'est pas dirigé vers une variable...

Librement,
Stéphane Schildknecht
dalibo
PostgreSQLFr


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