首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PLSQL -->隐式游标(SQL%FOUND)

/SQL中,游标的使用分为两种,一种是显示游标,一种是隐式游标,显示游标的使用需要事先使用declare来进行声明,其过程包括 声明游标,打开游标,从游标提取数据,关闭游标。...有关显示游标的使用,请参考:PL/SQL --> 游标 一、隐式游标的定义及其属性 定义 隐式游标则由则由系统自动定义,非显示定义游标的DML语句即被赋予隐式游标属性。...隐式游标 的名称是SQL,不能对SQL游标显式地执行OPEN,FETCH,CLOSE语句。...属性 类似于显示游标,隐式游标同样具有四种属性,只不过隐式游标SQL%开头,而显示游标以Cursor_name%开头 通过SQL%总是只能访问前一个DML操作或单行SELECT操作的游标属性,用于判断...code is executed successful PL/SQL procedure successfully completed 2.SQL游标的综合应用(根据SQL游标的不同属性返回不同的结果

1.3K30

PLSQL --> 游标

通过游标方式定位到结果集中某个特定的行,然后根据业务需求 对该行进行相应特定的操作。...: 显示游标:声明, 打开, 读取, 关闭 隐式游标直接使用读取,声明、打开、关闭都是系统自动进行的 4.显示游标的过程描述 a.声明游标 CURSOR cursor_name IS select_statement...三、使用游标更新记录 通过游标既可以逐行检索结果集中的记录,又可以更新或删除当前游标行的数据 如果要通过游标更新和删除数据,在定义游标时必须要带有FOR UPDATE子句 格式: CURSOR...statement2; END LOOP; 格式二: 在FOR循环中直接引用子查询,隐式定义游标 FOR record_name IN subquery LOOP statement; END...Name Sal 1 ALLEN 1600 2 WARD 1250 3 MARTIN 1250 4 TURNER 1500 --例:直接游标for循环中使用子查询来逐个显示记录 DECLARE

98220
您找到你想要的搜索结果了吗?
是的
没有找到

PLSQL 游标变量

二、游标变量使用的情形     PL/SQL 存储子程序和各种客户端之间可以使用游标变量来传递查询结果,这是游标变量最主要的作用。...例如,我们把主游标变量传递到嵌套在Pro*C 程序中的PL/SQL 块,游标变量指向的工作区就可以被访问。     如果客户端含有PL/SQL 引擎,那么从客户端调用服务器端就不会有什么约束。...,则上面的声明可以直接写为return_type%rowtype v_choice PLS_INTEGER := 2; BEGIN get_data.open_cv...: SQL Statement ignored 六、使用游标变量注意事项 1、不能在包规范中定义游标变量 2、不能在其它服务器的远程子程序中使用游标变量,不能把游标变量传给通过数据库连接被调用的过程 3...REF CURSOR适合于只依赖于SQL语句中(不是PL/SQL语句中)变   量的查询 8、不能在联合数组、嵌套表、或者变长数组中存储游标变量 9、如果向PL/SQL传递主机游标变量,不能在服务器检索它

1.2K40

PLSQL编程—游标

一、游标的相关概念:   定义: 游标它是一个服务器端的存储区,这个区域提供给用户使用,在这个区域里 存储的是用户通过一个查询语句得到的结果集,用户通过控制这个游标区域当中 的指针 来提取游标中的数据...(1)、 指向上下文区域的句柄或指针    (2)、上下文区域-用于SQL处理的内存区    (3)、上下文区域的内容 - 语句处理的行数 -指向语句的语法分析表示的指针   二、游标的类型   ...返回受影响的行数 %isopen   询问游标是否已经打开  四、隐式游标 隐式游标 ---由Oracle数据库自动创建,名称是(SQL) ,主要用途是可以返回一个操作是否成功或失败.   ...  --用户成功提取数据的行数    SQL%isopen   --在隐式游标里一般这个属性是自动打开和关闭的.且任何时候查询都返回False 示例:向表中插入一行数据,询问是否插入成功. declare...;     DBMS_output.put_line('影响了'||isCount||'行');   end; 显示游标SQL> declare 2 --定义游标类型sp_test_cursor

30230

PLSQL学习笔记-游标

; begin open c1;--打开游标 loop fetch c1 into v_title;--把游标中的数据存入变量,可以有多个变量 if c1%found then--如果找到数据,找不到数据为...123 3 xland 3 四:运行过程中获取游标中的内容 declare --定义游标 cursor c1(v_no number) is select * from labor.xland...where state > v_no; --定义变量为游标的行类型 v_record c1%rowtype; begin open c1(v_no => 0);--打开游标,传递参数(参数的另一种传递方式...>0; v_rows := sql%rowcount; dbms_output.put_line(to_char(v_rows)); end; 更多隐式游标属性请看此系列文章的附录: 常用函数 输出结果为受影响的行数...不能对隐式游标执行显示游标类似的操作,如: open  fetch close等 六:用for循环简化游标的操作 declare --定义游标 cursor c1(v_no number default

14910

oracle的游标 sql语句,sql游标

sql游标 游标的类型: 1、静态游标(不检测数据行的变化) 2、动态游标(反映所有数据行的改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除) 游标使用顺序: 1...、定义游标 2、打开游标 3、使用游标 4、关闭游标 5、释放游标 Transact-SQL: declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL...-1 游标是动态的 0 空集游标 操作游标的当前行: current of 游标名 以下例子,在SQL SERVER 2000 测试成功 use pubs go declare @auid char...Server Allen Kinsel – SQL DBA Allen White Amit Bansal writes… Andrew Fryer’s Blog Andrew Kelly Andy...Guy Bart Duncan’s SQL Weblog …… declare @ID varchar(10) set @ID=9 –根节点 declare @i int –级数 declare @t

1.4K20

PLSQL学习笔记_02_游标

在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实现。         ...游标是一个指向上下文的句柄( handle)或指针。通过游标, PL/SQL 可以控制上下文区和处理语句时上下文区会发生些什么事情。.../SQL 语言提供了游标 FOR 循环语句,自动执行游标的 OPEN、 FETCH、 CLOSE 语句和循环语句的功能  如果在游标查询语句的选择列表中存在计算列,则必须为这些计算列指定别名后才能通过游标..., 隐式游标的名字为 SQL,这是由 ORACLE 系统定义的。...对于隐式游标的操作,如定义、打开、取值及关闭操作,都由 ORACLE系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操作。

80840

PLSQL 编程(二)游标、存储过程、函数

END; 隐式游标: 被plsql自动管理,也被称为sql游标, 用户无法控制,但能得到他的属性信息。...对于隐式游标的操作,如定义、打开、取值及关闭操作,都由ORACLE 系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操作。...在隐式游标的工作区中,所存放的数据是与用户自定义的显示游标无关的、最新处理的一条SQL 语句所包含的数据。...%NOTFOUND THEN DELETE FROM departments WHERE department_id=v_deptno; END IF; END; --通过隐式游标...简单来时是存储在数据库服务器中的封装了一段或多段sql语句的plsql代码块。存储过程可以在编程语言中调用,如Java等。 存储过程的优点: 简化复杂的操作,封装。

3.7K71

PLSQL --> 动态SQL

以上两种情况,可以创建存储过程来对其进行分页,通过定义变量,根据输入不同的表名,字段名,排序方法来生成不同的SQL 语句。对于输入不同的参数,SQL在每次运行时需要事先对其编译。...也可以直接将动态SQL紧跟在EXECUTE IMMEDIATE语句之后,如EXECUTE IMMEDIATE 'alter table emp enable row movement' 3.两者的异同...静态SQL直接嵌入到PL/SQL中的代码,而动态SQL在运行时,根据不同的情况产生不同的SQL语句。...三、动态SQL的使用(DDL,DCL,DML以及单行结果集) 1.使用EXECUTE IMMEDIATE处理DDL操作 下面是一个简单的DDL操作,将其封装在存储过程之中,通过传入表名来进行调用。...,游标变量以及复合类型,复合变量,接下来从动态SQL中OPEN游标,然后使用FETCH将结果存放到复 合变量中。

2.1K10

SQL 游标使用示例

SQL游标(cursor)详细说明及内部循环使用示例 定义 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。...每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。...游标是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。...一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行。 对当前位置的数据进行读写。 可以对结果集中的数据单独操作,而不是整行执行相同的操作。...优点 SQL 循环语句几种写法 2添加链接描述 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157879.html原文链接:https://javaforall.cn

66520

SQL 基础】游标(curosr)(二)如何调查子游标的增加

概述 本文主要通过例子介绍如何调查子游标的增加。 关于游标的基础,大家可以参考前一篇【游标(curosr)】。 如何调查子游标的增加 下面我们通过例子来介绍如何调查子游标的增加。...文,产生了不同的子游标 方法1:v$sqlsharedcursor 2 .通过v$sqlsharedcursor 查看不能产生了不同子游标的原因 SQL> set linesize 500 SQL> select...(倒数第三的B列的值为Y,通过查询v$sqlsharedcursor视图定义,我们知道代表着BINDLENGTHUPGRADEABLE)。...Failed sharing : 4000000000000000★ 方法3:cursordump 在11.2以后的环境中还可以通过cursordump来查看子游标产生的原因: cursordump的取得方法...其他 和游标相关的视图: V$OPEN_CURSOR V$SESSION_CURSOR_CACHE V$SYSTEM_CURSOR_CACHE V$SQL_CURSOR V$SQL_SHARED_CURSOR

52410

Library Cache优化与SQL游标

图2-2 SQL语句与游标 SQL语句通过SQL_ID唯一标识父游标,如下所示: 从上述示例可以看出,SQL语句使用SQL_ID唯一标识父游标(V$SQLAREA),同时该SQL语句仅包含一父游标和一个子游标...kglob查询 KGLNA KGL Name结构体,通过x$kglna查询 父游标组成结构单元之间的关系,如图2-3所示: 图2-3 父游标组成结构 3父游标相关查询 父游标信息可以通过V$SQLAREA...可以通过以下示例进行验证: 示例1:参数变化导致游标共享差异。...示例2可以概括为图2-4: 图2-4 父子游标与cursor_sharing 通过图2-4可以看到,一个父游标可以包含多个子游标,验证了图2-2的正确性。...4子游标相关参数 参数optimizer_mode用于设置子游标的CBO优化器模式。 可以通过查询V$SQL_SHARED_CURSOR.

69550
领券