Bonjour à tous, je sillonne le site et internet et je trouve pas de réponse, pourtant ça me semble tout con :
J'essaye de faire une procédure stockée qui me renvoie plusieurs lignes et appeler cette proc sans y arriver.
Pour simplifier ma proc est du style :
La procédure se compile correctement, mais pas moyen de l'appeler. Quand je l'appel, que je fasse ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE PROCEDURE ma_proc ( date_du date not null, date_au date not null) returns ( employe varchar(100), colonne varchar(50), valeur numeric(9,2)) as BEGIN SELECT employe, colonne, valeur FROM une_table INTO :employe, :colonne, :valeur; suspend; END
ou ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM ma_proc('2011-01-01','2011-12-31')
J'ai un message d'erreur : "multiple rows in singleton select". Je suppose donc que ma procédure est mal écrite et n'attends qu'un seul enregistrement en retour, mais je trouve pas comment renvoyer plusieurs ligne. J'essaye de remplacer suspend par exit ça marche pas non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part EXECUTE PROCEDURE ma_proc('2011-01-01','2011-12-31')
Merci d'avance.
P.S : Je pense que la FAQ firebird (qui rend des services énormes) pourrait être un peu plus étoffée concernant l'écriture et l'utilisation des procédures stockées et des triggers. En donnant un exemple d'écriture d'une procédure stockée toute con pour juste avoir la syntaxe.
Partager