欢迎来到天天文库
浏览记录
ID:22199222
大小:25.53 KB
页数:7页
时间:2018-10-27
《oracle游标的使用及属性》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、oracle游标的使用及属性oracle游标的使用游标是从数据表中提取出来的数据,以临时表的形式存放到内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中的数据进行各种操作,然后将操作结果写回到数据库中。一:定义游标 cursor 游标名 is select 语句;示例: set serveroutput on declare tempsal scott.emp.sal%type; cursor mycursor is select * from scott.emp wh
2、ere sal > tempsal; begin tempsal :=800; open mycursor; end;二:打开游标 语法结构: open 游标名 打开游标分为两步: 1 将符合条件的记录送入内存 2 将指针指向第一条记录三:提取游标数据 语法形式: fetch 游标名 into 变量名1,变量名2,.....; 或者 fetch 游标名 into 记录型变量名; 示例: set serveroutput on declare tempsal scott.emp.sal%ty
3、pe; cursor mycursor is select * from scott.emp where sal > tempsal; cursorrecord mycursor%rowtype; begin tempsal :=800; open mycursor; fetch mycursor into cursorrecord; dbms_output.put_line(to_char(cursorrecord.deptno)); end;四:关闭游标 close 游标名;Oracle游标的属性之一------%is
4、open%isopen属性----测试游标是否打开,没打开的情况下使用fetch语句将提示错误。示例: setserveroutputon declare tempsalscott.emp.sal%type; cursormycursorisselect*fromscott.empwheresal>tempsal; cursorrecordmycursor%rowtype; begin tempsal:=800; ifmycursor%isopenthen dbms_output.putline(to_ch
5、ar(cursorrecord.deptno); else dbms_output.put_line('游标没有打开'); endif; end;Oracle游标的属性之二------%found该属性是测试前一个fetch语句是否有值,有值将返回true,不然false.示例: setserveroutpuon declare tempsalscott.emp.sal%type; cursormycursorisselect*fromscott.empwheresal>tempsal;
6、 cursorrecordmycursor%rowtype; begin tempsal:=800; openmycursor; fetchmycursorintocursorrecord; ifmycursor%foundthen dbms_output.put_line(to_char(cursorrecord.deptno); else dbms_ou
7、tpu.put_line('没有数据'); endif; end;Oracle游标的属性之三------%notfound该属性是%found属性的反逻辑,常被用于退出循环。setserveroutputondeclare tempsalscott.emp.sal%type; cursormycursorisselect*fromscott.empwheresal>tempsal; cursorrecordmycursor%rowtype;b
此文档下载收益归作者所有