PL/SQL — 显式游标】的更多相关文章

在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个工作区(Work Area),或是一种结构化数据类型. 在每个用户会话中,可以同时打开多个游标,其数量由数据库初始化参数文件中的OPEN_CURSORS参数定义. 对于不同的SQL语句,游标的使用情况不同: SQL语句 游标 非查询语句 隐式的 结果是单行的查询语句 隐式的或显示的 结果是多行的查询…
一.游标的相关概念及特性 1.定义 通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作. 2.分类 显示游标: 用户自定义游标,用于处理select语句返回的多行数据. 隐式游标: 系统自动定义的游标,记录集只有单行数据,用于处理select into 和DML语句. 3.游标使用的一般过程: 显示游标:声明, 打开, 读取, 关闭. 隐式游标:直接使用,读取,声明.打开.关闭都是系统自动进行的. 4.显示游标的过程描述 a.声明游标    CURSOR curso…
PL/SQL -->隐式游标(SQL%FOUND) 分类: SQL/PLSQL 基础2010-12-22 16:23 4084人阅读 评论(0) 收藏 举报 sqlexceptionoraclenullinsertdelete --=============================== -- PL/SQL -->隐式游标(SQL%FOUND) --=============================== 在PL/SQL中,游标的使用分为两种,一种是显示游标,一种是隐式游标,显示游…
一.隐式游标的定义及其属性 定义 隐式游标由系统自动定义,非显示定义游标的DML语句即被赋予隐式游标属性.其过程由oracle控制,完全自动化.隐式游标的名称是SQL,不能对SQL游标显式地执行OPEN,FETCH,CLOSE语句. 属性 类似于显示游标,隐式游标同样具有四种属性,只不过隐式游标以SQL%开头,而显示游标以Cursor_name%开头通过SQL%总是只能访问前一个DML操作或单行SELECT操作的游标属性,用于判断DML执行的状态和结果,进而控制程序的流程 SQL%ISOPEN …
cursor --------需要用户先定义,在select时,可以用于处理多行记录 1.declare  声明一个游标 2.open cursor (隐式游标自动open) 3.fetch cursor 读取记录到变量(在select时,可以通过循环的方式读取多行记录) 4.判断游标是否为空(到达最后一行记录) 5.close cusor 关闭游标 %isopen  判断游标是否open %found    判断游标是否为非空 %notfound  判断游标是否为空 %rowcount   在…
显式游标的处理过程包括: 声明游标,打开游标,检索游标,关闭游标. 声明游标 CURSOR c_cursor_name IS statement; 游标相当于一个查询结果集,将查询的结果放在游标里,方便在块里进行处理. 记录 一个记录就是一个复合的数据结构,相当于结果集里的一行数据,用于遍历游标时存放结果.记录支持三种定义:基于表,基于游标,自定义. 如果是基于表或游标,其定义格式为: record_name table_name or cursor_name%ROWTYPE; 打开游标 OPE…
隐式游标:一次只能返回一行结果(不需要定义,默认自动建立)  显式游标: 需要开发人员提前定义,可以通过循环的方式处理游标里的sql语句,返回多行结果    隐式游标的属性:   sql%rowcout    统计在游标中处理的记录数   sql%found      如果在游标中能找到符合条件的一条记录,结果为true   sql%notfound   如果在游标中能找不到符合条件的一条记录,结果为true   sql%isopen     判断游标是否打开,在隐式游标中默认游标自动打开 1.…
1)查询返回单行记录时→隐式游标: 2)查询返回多行记录并逐行进行处理时→显式游标 显式游标例子: DECLARE CURSOR CUR_EMP IS SELECT * FROM EMP; ROW_EMP CUR_EMP%ROWTYPE; BEGIN OPEN CUR_EMP; FETCH CUR_EMP INTO ROW_EMP; WHILE CUR_EMP%FOUND LOOP DBMS_OUTPUT.PUT_LINE(ROW_EMP.EMPNO || '----' || ROW_EMP.E…
游标可以处理SQL语句查询出来的结果集,进行逐条控制,其实游标在内存中申请空间,将自己指向SQL语句查询出来的结果集,有点像指针的感觉,游标使SQL更加的灵活. DECLARE CURSOR mycur IS --申请内存 SELECT * FROM books; --查出结果集 要实现对结果逐条处理 myrecord books%ROWTYPE; --准备变量 用于游标取出的数据的存储 因为取出表中所有的字段采取%ROWTYPE记 录的方式 BEGINOPEAN mycur; --打开游标结果…
--PL/SQL基础知识学习 --一.PL/SQL语句块,基础语法格式 DECLARE --变量声明列表 info varchar(25); --变量声明 stu_unm integer := 15; BEGIN --语句块 info := 'soulsjie'; --变量的赋值 DBMS_OUTPUT.put('HELLO WORLD!'); --输出不换行 DBMS_OUTPUT.put_line(info || stu_unm); --输出换行 ||为字符串的连接符 --异常处理块 END…