代码:
declare
sp varchar2(10);
cursor c_sp is
select sp from t_sp s;
begin
open c_sp;
fetch c_sp
into sp;
while c_sp %found loop
fetch c_sp
into sp;
dbms_output.put_line('我是游标:' || sp);
end loop;
close c_sp;
end;游标建立过程没有报错 输出结果:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
---上传图片要搞链接地址?原谅我没搞出来来。表:t_sp是有数据的
为什么输出结果不是‘我是游标:(数数据集合行的值)’
求解?
declare
sp varchar2(10);
cursor c_sp is
select sp from t_sp s;
begin
open c_sp;
fetch c_sp
into sp;
while c_sp %found loop
fetch c_sp
into sp;
dbms_output.put_line('我是游标:' || sp);
end loop;
close c_sp;
end;游标建立过程没有报错 输出结果:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
我是游标:
---上传图片要搞链接地址?原谅我没搞出来来。表:t_sp是有数据的
为什么输出结果不是‘我是游标:(数数据集合行的值)’
求解?
建议定义变量的时候,变量不要和字段名同名:
sp varchar2(10);
fetch c_sp
into sp; dbms_output.put_line('我是游标:' || sp);
end loop;
****************************
while循环里不用再次获取游标。
它输出的结果就是没有值
我改成这样就报错了
declare
t_sp varchar2(50);
cursor c_sp is
select into t_sp from t_sp s;
begin
open c_sp;
fetch c_sp
into t_sp;
while c_sp %found loop
fetch c_sp
into t_sp;
dbms_output.put_line('我是游标:' || t_sp);
end loop;
close c_sp;
end;
我在申明游标的时候那个查询语句加了into 就错了
t_sp的是 肯定是来源表 而表里面肯定是有数据的
恩 关于不要用sp 我知道了 我习惯了这2个字母
我去掉fetch c_sp
into sp;
就报错了 提示:
pls-00103出现符号"end-of-file"在需要下列只时:
<an identifier>
<a double-quoted delimited-identifier>
符号":"被替换"end-of-line"继续
declare
sp t_sp.sp%type;
cursor c_sp is select sp from t_sp;
begin
open c_sp;
loop
fetch c_sp into sp;
exit when c_sp%notfound;
dbms_output.put_line('我是游标:' || sp);
end loop;
close c_sp;
end;
cursor csr_sp is select sp from t_sp;
row_t_sp csr_sp%type;
begin
open csr_sp;
for row_t_sp in csr_sp
loop
dbms_output.put_line('我是游标:' || row_t_sp.sp );
end loop;
close csr_sp;
end;
在oracle中申明游标的时候不可以
declare
t_sp varchar2(50);
cursor c_sp is
select into t_sp from t_sp s;
这样? (我这个t_sp的类型有问题)我的意思是y游标中可以申明一个变量 把查询的集合放到里面去吗?第2个问题:
我把语句写好后没有错误如果用循环 输出则提示缓存区溢出
我在pl/sql命令窗口中 输出 set serveroutput on size 300000 还是提示超过10000
求解
declare
sp t_sp.sp%type;
cursor c_sp is select sp from t_sp;
begin
--加一个这个dbms_output.enable(99999999999999);
dbms_output.enable(99999999999999);
open c_sp;
loop
fetch c_sp into sp;
exit when c_sp%notfound;
dbms_output.put_line('我是游标:' || sp);
end loop;
close c_sp;
end;
我吧循环去掉就正常输出
如果我加循环就提示
输出则提示缓存区溢出。
9楼的大哥 你的那个
dbms_output.enable(99999999999999);
这个不行啊