erreur au lancement d'une req Oracle (SP2-0552)
Bonjour,
Je viens d'ecrire une requète simple effectuant seulement des calculs sans aucun acces à une base et je reçois le message d'erreur suivant dans SQL+ de suite au lancement de la requete : SP2-0552: variable de lien "L" non déclarée.
Est ce que quelqu'un peut me donner la signification de cette erreur, s'il vous plaît ?
Merci d'avance
erreur au lancement d'une req Oracle (SP2-0552)
voici la requète qui génère cette erreur :
declare
val number;
ch varchar2(15);
long number;
rang number;
puiss number;
i number;
quot number;
reste number;
l number;
nombre number;
numcolis number;
begin
-- calcul de la premiere partie des caracteres en code B
val := 104 + 24 + (54 * 2) + (17 * 3) + (99 * 4);
numcolis := 3477649825;
-- passage du numero de colis en char pour obtenir sa longueur
ch := chr(numcolis);
long := length(ch);
dbms_output.put_line(long);
rang := long / 2:
l := long - 2;
puiss := power(1,l);
dbms_output.put_line(puiss);
-- reste du calcul avec le numero de colis
for i in rang .. long - 1
loop
nombre := mod(numcolis,puiss);
dbms_output.put_line(nombre);
val := val + (nombre * rang);
numcolis := numcolis - (nombre * puiss);
dbms_output.put_line(numcolis);
l := l - 2;
puiss := power(1,l);
dbms_output.put_line(puiss);
end loop;
-- calcul de la cle
quot := mod(val,103);
reste := val - (quot * 103);
dbms_output.put_line(reste);
end;
/
Re: erreur au lancement d'une req Oracle (SP2-0552)
Citation:
Envoyé par etham
voici la requète qui génère cette erreur :
declare
val number;
ch varchar2(15);
long number;
rang number;
puiss number;
i number;
quot number;
reste number;
l number;
nombre number;
numcolis number;
begin
-- calcul de la premiere partie des caracteres en code B
val := 104 + 24 + (54 * 2) + (17 * 3) + (99 * 4);
numcolis := 3477649825;
-- passage du numero de colis en char pour obtenir sa longueur
ch := chr(numcolis);
long := length(ch);
dbms_output.put_line(long);
rang := long / 2: l := long - 2;
puiss := power(1,l);
dbms_output.put_line(puiss);
-- reste du calcul avec le numero de colis
for i in rang .. long - 1
loop
nombre := mod(numcolis,puiss);
dbms_output.put_line(nombre);
val := val + (nombre * rang);
numcolis := numcolis - (nombre * puiss);
dbms_output.put_line(numcolis);
l := l - 2;
puiss := power(1,l);
dbms_output.put_line(puiss);
end loop;
-- calcul de la cle
quot := mod(val,103);
reste := val - (quot * 103);
dbms_output.put_line(reste);
end;
/
C'est pas : a la fin de la ligne c'est ; qu'il faut mettre
Ensuite il faut replacer
ch:=chr(numcolis); par ch := to_char(numcolis); car la fonction pour convertir en char c'est TO_CHAR et non pas chr
Apres ca marche
erreur au lancement d'une req Oracle (SP2-0552)
merci pour votre aide et désolé de vous avoir dérangé pour ce genre de problème