写有游标如下:
set serveroutput on;
declare
message varchar2(1000);
Mess_age varchar2(1000);
type ref_cursor is ref cursor;
User_cursor ref_cursor;
Users tu_smsvc_user%rowtype;
begin
open User_cursor for select * from tu_smsvc_user where Sex='G' and rownum<=3;
loop
fetch User_cursor into Users;
Mess_age := Mess_age||'ID'||Users.USER_ID||',';
dbms_output.put_line(mess_age);
exit when User_cursor%notfound;
end loop;
close User_cursor;
Message :=Mess_age;
end;tu_smsvc_user表中只有一条数据 USER_ID=013000;
但是运行输出的结果为:
id013000,id013000
记录多输出了一次!
后来在表中多添加了几条数据,但最后一条记录总是会多输出了一次!
还不理解,请高手指点!!!!
set serveroutput on;
declare
message varchar2(1000);
Mess_age varchar2(1000);
type ref_cursor is ref cursor;
User_cursor ref_cursor;
Users tu_smsvc_user%rowtype;
begin
open User_cursor for select * from tu_smsvc_user where Sex='G' and rownum<=3;
loop
fetch User_cursor into Users;
Mess_age := Mess_age||'ID'||Users.USER_ID||',';
dbms_output.put_line(mess_age);
exit when User_cursor%notfound;
end loop;
close User_cursor;
Message :=Mess_age;
end;tu_smsvc_user表中只有一条数据 USER_ID=013000;
但是运行输出的结果为:
id013000,id013000
记录多输出了一次!
后来在表中多添加了几条数据,但最后一条记录总是会多输出了一次!
还不理解,请高手指点!!!!
解决方案 »
- 求一条sql语句
- oracle 导入导出问题
- 求助:数据库表结构设计与平均转发的问题
- 修改sequence的START WITH的数值后增加数据时出现02289错误!(解决的话把我所有的分都发出去!)
- 调查: 你们的生产库打没打过Oracle的安全补丁(CPU)
- 问大家个弱智的问题,嘿嘿,高手请进来!!
- Oracle 客户端如何通过代理服务器连接internet上的数据库??急!!
- sql*plus 中运行 spool 提示 :限制的命令不可用 怎样可是是这个命令可用??---在线等待、请帮忙
- Oracle 816 表空间问题! ORCL使用User表空间,在SQL plus中不能创建新表!提示空间不够!
- 写一个存储过程
- 大家来谈谈三层结构中的中间层是如何应用编写的呢?
- OCCI问题???
--Mess_age := Mess_age||'ID'||Users.USER_ID||',';
--dbms_output.put_line(mess_age);
exit when User_cursor%notfound;
Mess_age := Mess_age||'ID'||Users.USER_ID||',';
dbms_output.put_line(mess_age);
我的目的是把几条记录连起来保存在一个变量里!现在表里只有一条记录只是一个特殊情况!
如果把Mess_age := Mess_age||'ID'||Users.USER_ID||','; 写在外面只是保存了最后的一个记录的值。
open User_cursor for select * from tu_smsvc_user where Sex='G' and rownum<=3;
loop
fetch User_cursor into Users;
--Mess_age := Mess_age||'ID'||Users.USER_ID||',';
--dbms_output.put_line(mess_age);
exit when User_cursor%notfound;
Mess_age := Mess_age||'ID'||Users.USER_ID||',';
dbms_output.put_line(mess_age);
end loop;
close User_cursor;
Message :=Mess_age;
end;
多谢,是我自己对exit when User_cursor%notfound;这句理解错了!