游 标
来源:互联网 发布:淘宝泄漏买家信息 编辑:程序博客网 时间:2024/04/29 16:04
游标是oracle执行sql 语句的内存区域。在数据库编程中,游标是内部数据结构,能够处理sql 查询结果。
SQL%ROWCOUNT 会返回被更新的数据行数。
为处理显式游标,首先需要声明它,然后打开它。接下来检索它,最后关闭它。
声明游标的语法:
CURSOR c_cursor_name IS select statement
记录类型:一个记录就是一个复合的数据结构,这意味着它由一个或者多个元素组成。记录非常类似于数据库表中一行数据,但是记录的每个元素并不会独立存在。PL/SQL 支持三种类型的记录:基于表的(table-based)、基于游标的(cursor-based)以及程序员定义的(programmer-based)。 基于表的记录就是该记录的结构来自于数据库表中某些字段的列表。 基于游标的记录是记录的数据结构匹配预定义游标的元素。为创建一个基于表或者基于游标的记录,可以 用%ROWTYPE 属性:
record_name table_name or cursor_name % ROWTYPE
如: DECLARE
vr_student student%ROWTYPE
BEGIN
SELECT * INTO vr_student from student where student_id=156;
DBMS_OUTPUT.PUT_LINE(vr_student.first_name|| ' ' || vr_student.last_name|| ' has an ID of 156');
EXCEPTION
WHEN no_data_found THEN
RAISE_APPLICATION_ERROR(-2001,'The Student is not in the database.');
END;
检索游标的方式:
FETCH cursor_name INTO PL/SQL variables;
或者
FETCH curso_name INTO PL/SQL record;
如:
DECLARE
CURSOR c_zip IS SELECT * from zipcode;
vr_zip c_zip %ROWTYPE;
BEGIN
OPEN c_zip;
LOOP
FETCH c_zip INTO vr_zip;
EXIT WHEN c_zip%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(vr_zip.zip || ' '|| vr_zip.city || ' ' || vr_zip.state);
END LOOP;
CLOSE c_zip; //关闭游标 释放 资源
END;
自定义记录类型:
如: DECLARE
TYPE instructor_info IS RECORD
( first_name instructor.first_name%TYPE,
last_name instructor.last_name%TYPE,
sections NUMBER);
rv_instructor instructor_info
BEGIN
SELECT RTRIM(i.first_name),RTRIM(i.last_name),COUNT(*) INTO rv_instructor
from instructor i, section s where i.instructor_id=s.instruector_id
and i.instructor_id=102
GROUP BY i.first_name,i.last_name;
END;
显示 游标属性:
1.%NOTFOUND(cursor_name%NOTFOUND) :一个Boolean属性,当前面的FETCH操作没有返回数据行时,该属性的值是TRUE,否则是FALSE。
2.%FOUND (cursor_name%FOUND) : 一个Boolean 属性,当前面的FETCH操作返回一行数据时,该属性的值是TRUE,否则 是FALSE。
3.%ROWCOUNT (cursor_name%ROWCOUNT) : 从游标中所检索的记录数量
4.%ISOPEN (cursor_name%ISOPEN): 一个Boolean 属性:当游标处于打开状态时,则该属性的值是TRUE,否则 FALSE。
- 游 标
- 游 标
- 标
- 游
- 数据分析团队正成为手游公司的标配,但我为什么说解散他
- 文章标文章标
- 目 标
- 国军标
- 画图标
- 第一标
- STRUTS标
- 热标
- 价格标
- 打标、去标工具。
- 逍遥游
- 香山游
- 海南游
- 游...记
- 容易忽视的网络安全错误操作盘点(商企通在线客服组)
- 轻松建立Silverlight开发环境(转载)
- XML转String拼htmlText的时候莫名多出来的空格
- Oracle数据库启动关闭
- C++实现PDA中打开和关闭软键盘的方法
- 游 标
- C++的类与C里面的struct的区别
- struts2中action跳转导致图片相对路径无法显示问题
- 配置sphinx
- Oracle 9i 启动服务小结
- vim 窗口相关
- 将数组中某个元素置顶
- 优秀的80后是怎样的?
- VC++中改变Static Text字体的大小