--3.将游标的当前行取出存放到变量中
fetch cur_stu into v_stuno,v_stuname;
loop
if cur_stu%found then --如果游标cur_stu所指还有数据行
--打印结果
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
--继续将游标所指的当前行取出放到变量中
fetch cur_stu into v_stuno,v_stuname;
else
exit;
end if;
end loop;
close cur_stu; --4.关闭游标
end;
END PROC_STU2;
(3).使用FOR循环处理游标
create or replace PROCEDURE PROC_STU3 AS
BEGIN
--显示游标使用,使用for循环
declare
--定义游标,名称为cur_stu
cursor cur_stu is
select stuno,stuname from student order by stuno;
begin
for stu in cur_stu
loop
dbms_output.PUT_LINE(stu.stuno||'->'||stu.stuname);
--循环做隐含检查 %notfound
end loop;
--自动关闭游标
end;
END PROC_STU3;
(4).常用的使用EXIT WHEN处理游标
create or replace
PROCEDURE PROC_STU1_1 AS
BEGIN
--显示游标使用,使用exit when循环
declare
--1.定义游标,名称为cur_stu
cursor cur_stu is
select stuno,stuname from student order by stuno;
--定义变量,存放游标取出的数据
v_stuno varchar(4);
v_stuname varchar(20);
begin
--2.打开游标cur_stu
open cur_stu;
loop
--3.将游标的当前行取出存放到变量中
fetch cur_stu into v_stuno,v_stuname;
exit when cur_stu%notfound; --游标所指还有数据行,则继续循环
--打印结果
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
end loop;
close cur_stu; --4.关闭游标
end;
END PROC_STU1_1;
二.隐式游标
1.使用演示
create or replace PROCEDURE PROC_STU4 AS
BEGIN
--隐式游标使用
update student set stuname='张燕广' where stuno='1104';
--如果更新没有匹配则插入一条新记录
if SQL%NOTFOUND then
insert into student(STUNO,STUNAME,AGE,GENDER)
values('1104','张燕广',18,'男');
end if;
END PROC_STU4;
2.说明
所有的SQL语句在上下文区内部都是可执行的,因为都有一个游标指向上下文区,此游标就是
SQL游标,与现实游标不同的是,SQL游标在PL/SQL中不需要打开和关闭,而是在执行UPDATE、
DELETE是自动打开和关闭。
上面例子中就是通过SQL%NOTFOUND游标属性判断UPDATE语句的执行结果决定是否需要插入新记录。
分享到:
相关推荐
在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...
显式游标需要程序员明确声明、打开、读取、关闭,而隐式游标则由数据库系统自动管理,通常在DML语句(如INSERT、UPDATE、DELETE)中使用。 2. **查询 SELECT… INTO …** 在PL/SQL中,可以使用SELECT… INTO语句将...
Oracle 游标使用方法及语法大全 Oracle 游标是 PL/SQL 程序中的一种重要组件,用于处理查询结果集。游标可以分为隐式游标和显式游标两种,隐式游标由 PL/SQL 管理,隐式游标打开时查询开始,查询结束时隐式游标自动...
以下是关于Oracle游标使用的一些关键知识点: 1. **游标的基本概念**: 游标(Cursor)是一种机制,它允许我们遍历和操作由SQL查询返回的结果集。通过游标,我们可以控制数据的读取顺序,一次只处理一行,或者在...
### Oracle游标使用大全 #### 一、概述 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集中的数据。游标允许程序逐行处理数据,这在需要对多行数据进行循环处理时非常有用。本文档旨在提供一个全面的...
2. **打开和移动游标**: 创建游标后,需要用`OPEN`语句打开它,然后通过`FETCH NEXT`来获取下一行数据。比如: ```sql FETCH NEXT FROM @myCursor INTO @customerId, @customerName; ``` 这将把当前行的`...
2. **使用`IF...ELSE`和`WHILE`循环遍历游标** 这个例子与上一个类似,但使用了`IF...ELSE`结构来替代`WHILE`循环的条件判断,这样可以更清晰地表达逻辑。 ```sql CREATE OR REPLACE PROCEDURE PROC_STU2 AS ...
2. **显式游标**:需要用户手动定义并使用的游标,适用于更复杂的查询场景。 - **简单游标**:用于一般的查询操作。 - **嵌套表游标**:返回嵌套表的游标。 - **Ref游标**:返回一个游标引用,可用于函数返回多个...
2. **打开游标**:使用`OPEN`关键字打开游标,使其准备好进行数据提取。 3. **提取数据**:使用`FETCH NEXT`从游标中提取下一行数据,并将其存储到相应的变量中。这里使用了`INTO`子句将提取的数据赋值给事先声明...
2. **游标的声明与打开** - 声明游标:使用DECLARE关键字声明一个游标,指定对应的SQL查询语句。 - 打开游标:使用OPEN关键字打开游标,执行SQL查询并准备读取结果集。 3. **提取数据** - FETCH语句:从打开的...
### SQL游标使用详解 #### 一、引言 在SQL编程中,游标是一种用于处理查询结果集的工具,可以实现对数据行的逐行访问。本文将通过一个具体的示例来详细介绍如何使用SQL游标,并解释其背后的原理与应用场景。 ####...
2. **使用FETCH INTO语句遍历游标**: 使用`FETCH INTO`语句逐行获取游标中的数据,并存储到变量中。 ```sql LOOP FETCH cur_name INTO v_col1, v_col2, ...; EXIT WHEN cur_name%NOTFOUND; -- 处理数据...
2. **显式游标的操作** - OPEN:打开游标,准备读取数据。 - FETCH:从游标中获取一行数据。 - NEXT:移动到下一行。 - CLOSE:关闭游标,释放资源。 - CURSOR声明:在PL/SQL中,定义游标结构,包括查询语句。 ...
PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 游标的使用.PB中 ...
2. **打开游标**:使用OPEN语句打开游标,触发SQL查询语句的执行。 ```sql OPEN customer_cursor; ``` 3. **读取数据**:使用FETCH语句从游标中读取数据,可以一次读取一行或多行数据。 ```sql FETCH customer_...
2. FOR UPDATE 选项的使用 FOR UPDATE 选项用于锁定游标结果集中指定的行,以防止其他用户对该行进行修改。该选项可以指定锁定的列,如果忽略了 OF 子句,那么表中选择的数据行都将被锁定。 3. 游标更新的语法 ...
2. **显式游标**:显式游标允许程序员更精细地控制数据处理过程,包括何时打开和关闭游标,以及如何遍历结果集。以下是一些关键步骤: - **声明**:在PL/SQL块的声明部分,声明一个游标,指定其SQL查询。 - **打开...
游标卡尺的使用 游标卡尺是一种常用的测量工具,广泛应用于机械制造、工程设计、建筑施工等领域。下面我们将详细介绍游标卡尺的构造、使用规则、分类、测量原理和读数方法。 一、游标卡尺的构造 游标卡尺由四个...
- 例如,以下过程展示了如何使用游标属性处理DML语句的结果: ```sql CREATE OR REPLACE PROCEDURE FIRE_EMPLOYEE (pempno in number) AS v_ename EMP.ENAME%TYPE; BEGIN SELECT ename INTO v_ename FROM emp...