我有一个表test1(id,loop) 里面的数字是不连续的,,我像把他们都输出,,declare
v_id number;
v_value VARCHAR2(10);
v_count NUMBER;
begin
SELECT max(id) into v_count from test1;
begin
while v_count>0
loop
v_count := count-1;
dbms_output.put_line(v_count);
select id,value into v_id,v_value from test1 where id := v_count;
dbms_output.put_line(v_id);
dbms_output.put_line(v_value);
end loop;
end;
end;
请问用游标怎么遍历表test1,,并且把数据全部输出,,,我没有多少分了,,,,麻烦哪位高手帮我写一下,,谢谢
v_id number;
v_value VARCHAR2(10);
v_count NUMBER;
begin
SELECT max(id) into v_count from test1;
begin
while v_count>0
loop
v_count := count-1;
dbms_output.put_line(v_count);
select id,value into v_id,v_value from test1 where id := v_count;
dbms_output.put_line(v_id);
dbms_output.put_line(v_value);
end loop;
end;
end;
请问用游标怎么遍历表test1,,并且把数据全部输出,,,我没有多少分了,,,,麻烦哪位高手帮我写一下,,谢谢
v_count := count-1;
--你写错了,改过来试下
v_count := v_count-1;有空我帮你写个例子吧
v_id number;
v_value VARCHAR2(10);
v_count NUMBER;
begin
SELECT max(id) into v_count from test1;
begin
while v_count>0
loop
dbms_output.put_line(v_count);
select id,value into v_id,v_value from test1 where id := v_count;
dbms_output.put_line(v_id);
dbms_output.put_line(v_value);
dbms_output.put_line('陈');
v_count := v_count-1;
end loop;
end;
end;
这里不是赋值语句了,用=号
另外,游标的使用,无论书本还是网上,都是一堆的例子,楼主应该可以自己找答案好些。
select id,value into v_id,v_value from test1 where id = v_count;--此处不用两点--简单点
declare
cursor cur is select * from test1;
begin
for rec in cur
loop
dbms_output.put_line(rec.id);
dbms_output.put_line(rec.value);
end loop;
end;
/
declare
cursor cur is select * from test1;
begin
for rec in cur
loop
dbms_output.put_line(rec.id);
dbms_output.put_line(rec.value);
end loop;
end;
/