Je suis très proche de l'exécution de ma première procédure stockée. Celui-ci compile, mais quand je le lance avec call test.fttest5('YEAR');
il renvoie une erreurQuel est le problème avec cette procédure stockée?
Etat SQL: 22001 Code fournisseur: -303 Message: [SQL0303] variable hôte * N pas compatible. Cause . . . . . : FETCH, SELECT, CALL, SET, VALUES INTO, GET DIAGNOSTICS, GET DESCRIPTOR ou SET DESCRIPTOR ne peuvent pas être effectués car le type de données de la variable hôte * N n'est pas compatible avec le type de données de l'élément de liste correspondant.
De même, comment spécifier un type de données illimité dans ma procédure stockée? J'ai essayé DECLARE temp VARCHAR(MAX);
mais cela n'a pas fonctionné. Ma plate-forme est ISeries DB2 V5R4.
create procedure test.fttest5
(IN ftExpression CHARACTER(30))
language sql
reads sql data
dynamic result sets 1
begin
declare cmd VARCHAR(50);
declare whr VARCHAR(50)
;
declare x cursor for sl;
set cmd='select * from testSchema.tempTable' ;
if ftExpression IS NOT NULL
THEN
set whr= ftExpression;
END IF;
set cmd=cmd || CASE WHEN whr IS NULL THEN '' ELSE ' ORDER BY ' || whr END;
prepare sl from cmd;
open x;
return;
end
;
Merci, je vais regarder dans ce que vous avez dit et garder ce fil posté! –
compris, merci. Vous étiez sur place. –