Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU
Publicité
Attn's blog

SQL PL SubRoutine

21 Septembre 2016 , Rédigé par Pam007 Publié dans #Sql

Dans une procédure ou fonction Sql,

il arrive que l'on ait un petit bout de code qui se répète à différents endroit :-((

En Rpg, on le collerai vite fait bien fait dans une fonction interne ou dans un sous-programme (exsr begsr endsr).

L'exemple en SQL PL ci-dessous simule - me semble t-il - un bon vieux sous-programme ;-))

Est-ce abuser des handlers !?

 

create or replace function milan / test

(p_zn1 dec(7), p_zn2 dec(7))

returns dec(7)

language sql

deterministic

no external action

specific milan / test

set option dbgview = *source

 

begin

declare zn3w dec(7) default 0;

declare iw dec(7) default 0;

 

declare exsr1w condition for '70001';

declare continue handler for exsr1w -- Attn : SubRoutine !

begin

set zn3w = zn3w + p_zn1;

set zn3w = zn3w + 1;

end;

 

bb:loop -- ceci est une boucle

set iw = iw + 1;

if iw > p_zn2

then

leave BB; -- Qu'il est triste de quitter Brigitte Bardot

end if;

signal exsr1w; -- Sorte d'Exsr... cf. en tête de programme

end loop;

 

return zn3w;

end;

 

-- Pour tester la fonction précédente :

values test(15, 15);

Publicité
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article