Curseur pl sql
infsql
-
infsql Messages postés 1 Statut Membre -
infsql Messages postés 1 Statut Membre -
bonjour,
svp si qqn peut m'aider:
EMP(ENO,ENAME,SALAIRE,DATE_EMB)
on doit Afficher le nième et le nième + 1 plus anciens embauchés de la table EMP.
n est transmis en paramètre la sol que j'ai fait n'est correcte si qqn peut et merci d'avance.
ACCEPT s_num prompt'donnez le num DE AN'
declare
cursor c_empl is select ename from empl order by date_emb desc;
v_nom empl.ename%type;
i number :=0;
v_nsuiv number;
begin
open c_empl;
while c_empl%found loop
fetch c_empl into v_nom;
if(i:=&s_num)
dbms_output.put_line('le nom du '||&s_num ||'eme est:'||v_nom);
v_nsuiv:=i+1;
end if
if(i:=v_nsuiv)
dbms_output.put_line('le nom du '||&s_num ||'eme est:'||v_nom);
end if
i:=i+1;
exit when c_empl%notfound;
end loop;
end;
/
merci.
svp si qqn peut m'aider:
EMP(ENO,ENAME,SALAIRE,DATE_EMB)
on doit Afficher le nième et le nième + 1 plus anciens embauchés de la table EMP.
n est transmis en paramètre la sol que j'ai fait n'est correcte si qqn peut et merci d'avance.
ACCEPT s_num prompt'donnez le num DE AN'
declare
cursor c_empl is select ename from empl order by date_emb desc;
v_nom empl.ename%type;
i number :=0;
v_nsuiv number;
begin
open c_empl;
while c_empl%found loop
fetch c_empl into v_nom;
if(i:=&s_num)
dbms_output.put_line('le nom du '||&s_num ||'eme est:'||v_nom);
v_nsuiv:=i+1;
end if
if(i:=v_nsuiv)
dbms_output.put_line('le nom du '||&s_num ||'eme est:'||v_nom);
end if
i:=i+1;
exit when c_empl%notfound;
end loop;
end;
/
merci.
A voir également:
- Curseur pl sql
- Comment faire apparaître le curseur sans souris - Guide
- Logiciel sql - Télécharger - Bases de données
- Curseur bloqué ordinateur portable - Guide
- Curseur en arabe - Forum Windows
- Curseur souris disparu pc portable acer ✓ - Forum souris / Touchpad
1 réponse
bonjour,
voici la réponse :
SET SEVEROUTPUT ON
ACCEPT s_num prompt'donnez le num DE n : '
declare
cursor c_empl is select ename from empl order by date_emb asc;
v_nom empl.ename%type;
v_nsuiv number;
n number;
p number;
begin
select count(*) into n from empl;
open c_empl;
p:=&n_num;
for i in 1..n loop
fetch c_empl into v_nom;
if(i=p) then
DBMS_OUTPUT.put_line('le nom : '||v_nom);
v_nsuiv:=i+1;
end if;
if(i=v_nsuiv) then
DBMS_OUTPUT.put_line('le nom n+1 est:'||v_nom);
end if;
end loop;
end;
voici la réponse :
SET SEVEROUTPUT ON
ACCEPT s_num prompt'donnez le num DE n : '
declare
cursor c_empl is select ename from empl order by date_emb asc;
v_nom empl.ename%type;
v_nsuiv number;
n number;
p number;
begin
select count(*) into n from empl;
open c_empl;
p:=&n_num;
for i in 1..n loop
fetch c_empl into v_nom;
if(i=p) then
DBMS_OUTPUT.put_line('le nom : '||v_nom);
v_nsuiv:=i+1;
end if;
if(i=v_nsuiv) then
DBMS_OUTPUT.put_line('le nom n+1 est:'||v_nom);
end if;
end loop;
end;