- 浏览: 547678 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (740)
- css (4)
- jquery (8)
- javascript (23)
- html (0)
- uml (0)
- 设计模式 (1)
- 开发工具 (14)
- json (4)
- struts 1.x (3)
- spring (3)
- hibernate (6)
- struts 2.x (17)
- JFreechart (0)
- j2se (48)
- jsp (9)
- flex (22)
- 找工作 (1)
- 技术杂谈 (18)
- 网络编程 (5)
- io流 (1)
- ORACLE (15)
- 报表 (3)
- extjs (11)
- jpbm (2)
- swing (5)
- jspereports (3)
- sql (1)
- linux (15)
- ps (1)
- storm (4)
- hbase (8)
- li (0)
- python (1)
- hive (3)
- 机器学习 (1)
- hdfs (1)
- elasticsearch (1)
- hadoop 2.2 (5)
- hadoop (1)
最新评论
-
Tristan_S:
这个有点意思
ASM -
starryskydog:
程序修改detail band部分的样式 如内容字体大小 ...
使用jasperReport实现动态表头 -
samwong:
Good, so usefule
使用YUI Compressor压缩CSS/JS -
gc715409742:
能够告诉我怎么在web项目中使用YUI Compressor? ...
使用YUI Compressor压缩CSS/JS -
JsonTeye:
您好! 我看你的代码,我现在也在做动态报表,实现功能由用户自己 ...
使用jasperreport动态生成pdf,excel,html
游标
1、技术目标
- 游标的使用
2、什么是游标?
游标是查询数据时指向结果集的指针,通过游标可一次访问结果集中
的一行,Oracle有两种游标:
-
静态游标 ,在编译时知道select语句的游标,静态游标有两种:
- 隐式游标
- 显示游标
-
REF游标 ,有时候为游标使用的查询直到代码运行时才确定,
这种情况使用REF游标(引用游标)和游标变量来实现,
有两种REF游标:
- 强类型REF游标
- 弱类型REF游标
3、隐式游标
PL/SQL为DML语句隐式声明游标,用户不能命名和控制这种游标,所以
称为隐式游标,隐式游标使用属性返回信息,属性 包括:
- %FOUND ,在DML语句影响一行或多行时返回true
- %NOTFOUND ,没有影响任何行时返回true
- %ROWCOUNT ,返回DML语句影响行数,如DML没有影响任何行返回0
- %ISOPEN ,返回游标是否已打开的值,在SQL语句执行完后,Oracle自动关闭SQL游标,隐式游标的%ISOPEN属性始终为false
注意:通过检查隐式游标的属性可以获取与最近执行时的SQL语句相关的信息
使用1: 用%FOUND属性判断是否获取查询结果,
- set serveroutput on
- begin
- --查询
- update toys set toyprice=270 where toyid='T005';
- --判断是否有查询结果
- if SQL%FOUND then
- DBMS_OUTPUT.PUT_LINE('表已更新');
- else
- DBMS_OUTPUT.PUT_LINE('编号未找到');
- end if;
- end;
- /
set serveroutput on begin --查询 update toys set toyprice=270 where toyid='T005'; --判断是否有查询结果 if SQL%FOUND then DBMS_OUTPUT.PUT_LINE('表已更新'); else DBMS_OUTPUT.PUT_LINE('编号未找到'); end if; end; /
使用2: 用%ROWCOUNT获取SQL语句执行所影响的行数,
- set serveroutput on
- begin
- update vendor_master set venname='Rob Mathew' where vencode='V004'
- DBMS_OUTPUT.PUT_LINE('更新了' || SQL%ROWCOUNT || '行');
- end;
- /
set serveroutput on begin update vendor_master set venname='Rob Mathew' where vencode='V004' DBMS_OUTPUT.PUT_LINE('更新了' || SQL%ROWCOUNT || '行'); end; /
使用3 :按编号查询员工,判断是否查到,
- set serveroutput on
- declare
- empid varchar2(10);
- desig varchar2(20);
- begin
- empid := '&职员编号';
- --根据员工编号查询出员工职位并给变量desig赋值
- select designation into desig from employee where empno = empid;
- if SQL%ROWCOUNT > 0 then
- DBMS_OUTPUT.PUT_LINE('职员的头衔是:' + desig);
- end if;
- exception
- when NO_DATA_FOUND then
- DBMS_OUTPUT.PUT_LINE('职员未找到');
- end;
- /
set serveroutput on declare empid varchar2(10); desig varchar2(20); begin empid := '&职员编号'; --根据员工编号查询出员工职位并给变量desig赋值 select designation into desig from employee where empno = empid; if SQL%ROWCOUNT > 0 then DBMS_OUTPUT.PUT_LINE('职员的头衔是:' + desig); end if; exception when NO_DATA_FOUND then DBMS_OUTPUT.PUT_LINE('职员未找到'); end; /
4、显示游标
显示游标是用户显示声明的游标,游标将指向活动集(查询结果)中的当前行,
使用显示游标的步骤:
1)声明
2)打开
3)从游标中获取记录
4)关闭游标
显示游标在PL/SQL程序的DECLARE部分声明,语法 为:
CURSOR cursor_name [(parameter [, parameter] ...)]
[return return_type]
IS
select_statement;
语法说明:
cursor_name:游标名称
parameter:指定输入参数
return type:定义游标提取的行的类型
select_statement:游标定义的查询语句
游标声明后,可使用如下语句控制游标 :
- open :打开游标,open cursor_name [ (parameters) ];
-
fetch :从游标中提取行,fetch cursor_name into variables;
写在循环内,用于从结果集中一次检索一行,
每次提取后指针就向前移动一行 - close :关闭游标,close cursor_name,游标处理完后必须关闭
使用1: 声明游标toy_cur,打开并使用该游标提取所有行,
- set serveroutput on
- declare
- --定义变量my_toy_price,其类型与toyprice字段一致
- my_toy_price toys.toyprice%TYPE;
- CURSOR toy_cur IS
- select toyprice from toys
- where toyprice < 250;
- begin
- open toy_cur; --打开游标
- LOOP --循环
- --循环提取玩具的价格并给变量my_toy_price赋值
- fetch toy_cur into my_toy_price;
- --当查询没有返回任何行时退出循环
- exit when toy_cur%NOTFOUND;
- --输出玩具价格
- DBMS_OUTPUT.PUT_LINE(toy_cur%ROWCOUNT || '. 玩具单价:' || my_toy_price);
- END LOOP;
- --关闭游标
- close toy_cur;
- end;
- /
set serveroutput on declare --定义变量my_toy_price,其类型与toyprice字段一致 my_toy_price toys.toyprice%TYPE; CURSOR toy_cur IS select toyprice from toys where toyprice < 250; begin open toy_cur; --打开游标 LOOP --循环 --循环提取玩具的价格并给变量my_toy_price赋值 fetch toy_cur into my_toy_price; --当查询没有返回任何行时退出循环 exit when toy_cur%NOTFOUND; --输出玩具价格 DBMS_OUTPUT.PUT_LINE(toy_cur%ROWCOUNT || '. 玩具单价:' || my_toy_price); END LOOP; --关闭游标 close toy_cur; end; /
使用2: 用游标操作PRODUCTDETAILS表,
- declare
- --定义变量pro_price,其类型与PRODPRICE字段一致
- pro_price PRODUCTDETAILS.PRODPRICE%TYPE;
- --定义变量pro_name,其类型与PRODNAME字段一致
- pro_name PRODUCTDETAILS.PRODNAME%TYPE;
- --定义游标pro_cur,查询所有价格小于5000的商品
- CURSOR pro_cur IS
- select PRODNAME, PRODPRICE from PRODUCTDETAILS
- where PRODPRICE < 5000;
- begin
- open pro_cur; --打开游标
- LOOP --循环
- --循环提取商品的名称和价格并赋值给变量pro_name和pro_price
- fetch pro_cur into pro_name, pro_price;
- --当查询没有返回任何行时退出循环
- exit when pro_cur%NOTFOUND;
- --输出商品名、价格
- DBMS_OUTPUT.PUT_LINE(pro_cur%ROWCOUNT || ', 商品名:' || pro_name || ', 单价:' || pro_price);
- END LOOP;
- --关闭游标
- close pro_cur;
- end;
- /
declare --定义变量pro_price,其类型与PRODPRICE字段一致 pro_price PRODUCTDETAILS.PRODPRICE%TYPE; --定义变量pro_name,其类型与PRODNAME字段一致 pro_name PRODUCTDETAILS.PRODNAME%TYPE; --定义游标pro_cur,查询所有价格小于5000的商品 CURSOR pro_cur IS select PRODNAME, PRODPRICE from PRODUCTDETAILS where PRODPRICE < 5000; begin open pro_cur; --打开游标 LOOP --循环 --循环提取商品的名称和价格并赋值给变量pro_name和pro_price fetch pro_cur into pro_name, pro_price; --当查询没有返回任何行时退出循环 exit when pro_cur%NOTFOUND; --输出商品名、价格 DBMS_OUTPUT.PUT_LINE(pro_cur%ROWCOUNT || ', 商品名:' || pro_name || ', 单价:' || pro_price); END LOOP; --关闭游标 close pro_cur; end; /
5、使用显示游标删除或更新
语法:cursor cursor_name is select语句 for update [of colums];
注意:select语句只能包括一个表
游标声明中使用FOR UPDATE子句后,可使用以下语法更新行:
update 表名 set column_name = column_value
where CURRENT OF cursor_name;
注意:update命令中使用的列也必须出现在for update of子句中,
update和delete语句只有在打开游标并提取到特定行后才能使用
使用: 用显示游标更新行,将所有价格低于100的玩具提价10%,
- set serveroutput on
- declare
- new_price number;
- --定义游标
- cursor cur_toy is
- select toyprice from toys where toyprice < 100 for update of toyprice;
- begin
- open cur_toy;--打开游标
- LOOP
- --执行SQL查询语句,提取价格并赋值给变量new_price
- fetch cur_toy into new_price;
- --如果没有查询结果,退出循环
- exit when cur_toy%NOTFOUND;
- --给价格低于100的商品提价10%
- update toys set toyprice = 1.1 * new_price where CURRENT OF cur_toy;
- end loop;
- close cur_toy;
- commit;
- end;
- /
set serveroutput on declare new_price number; --定义游标 cursor cur_toy is select toyprice from toys where toyprice < 100 for update of toyprice; begin open cur_toy;--打开游标 LOOP --执行SQL查询语句,提取价格并赋值给变量new_price fetch cur_toy into new_price; --如果没有查询结果,退出循环 exit when cur_toy%NOTFOUND; --给价格低于100的商品提价10% update toys set toyprice = 1.1 * new_price where CURRENT OF cur_toy; end loop; close cur_toy; commit; end; /
6、带参的显示游标
显示游标可以接受输入的参数,声明带参游标的语法 如下:
CURSOR cursor_name (<param_name> data_type)
[return <return_type>]
IS
select_statement;
使用: 提示输入部门编号,根据输入的部门编号提取该部门
下的员工,显示员工的编号和姓名,
- declare
- dept_code emp.deptno%TYPE;
- emp_code emp.empno%TYPE;
- emp_name emp.ename%TYPE;
- --定义带参游标,参数名为deptparam,查询指定部门的员工
- cursor emp_cur (deptparam number) is
- select empno, ename from emp
- where deptno=deptparam;--查询条件使用参数匹配
- begin
- --输入部门编号
- dept_code := '&部门编号';
- open emp_cur(dept_code);--打开游标的同时传参
- LOOP --循环
- --取出员工编号、员工名并赋值给变量emp_code、emp_name
- fetch emp_cur into emp_code, emp_name;
- --没有查询出结果退出循环
- exit when emp_cur%NOTFOUND;
- --系统输出
- DBMS_OUTPUT.PUT_LINE(emp_code || ' ' || emp_name);
- END LOOP;
- --关闭游标
- close emp_cur;
- end;
- /
declare dept_code emp.deptno%TYPE; emp_code emp.empno%TYPE; emp_name emp.ename%TYPE; --定义带参游标,参数名为deptparam,查询指定部门的员工 cursor emp_cur (deptparam number) is select empno, ename from emp where deptno=deptparam;--查询条件使用参数匹配 begin --输入部门编号 dept_code := '&部门编号'; open emp_cur(dept_code);--打开游标的同时传参 LOOP --循环 --取出员工编号、员工名并赋值给变量emp_code、emp_name fetch emp_cur into emp_code, emp_name; --没有查询出结果退出循环 exit when emp_cur%NOTFOUND; --系统输出 DBMS_OUTPUT.PUT_LINE(emp_code || ' ' || emp_name); END LOOP; --关闭游标 close emp_cur; end; /
7、使用循环游标简化显示游标的代码
当用户需要从游标中提取所有记录时使用循环游标,可自动从结果集
中获取行,处理完所有行后关闭游标,循环游标还自动创建%ROWTYPE
类型的变量并将该变量作为记录索引,语法 如下:
FOR row_record IN cursor_name
LOOP
语句;
END LOOP ;
语法说明:
row_record,保存行记录的变量,为%ROWTYPE类型,FOR循环外不能访问
cursor_name,游标名称
循环游标的特点:
- 在从游标中提取了所有记录后自动终止
- 可提取和处理游标中的每一条记录
-
如果在提前记录后%NOTFOUND属性返回true,会终止循环,如果没有
返回任何行,不会进入循环
使用: 输出显示所有玩具的编号、名称、价格,
- SET SERVER OUTPUT ON
- DECLARE
- CURSOR mytoyCur IS
- SELECT toyid, toyname, toyprice
- FROM toys;
- BEGIN
- FOR toyRec IN mytoyCur
- LOOP
- DBMS_OUTPUT.PUT_LINE(
- '玩具编号:' || ' ' || toyRec.toyid||' '
- || ‘玩具名称:' || ' '|| toyRec.toyname||' '
- || ‘玩具单价:' || ' '||toyRec.toyprice);
- END LOOP;
- END;
- /
SET SERVER OUTPUT ON DECLARE CURSOR mytoyCur IS SELECT toyid, toyname, toyprice FROM toys; BEGIN FOR toyRec IN mytoyCur LOOP DBMS_OUTPUT.PUT_LINE( '玩具编号:' || ' ' || toyRec.toyid||' ' || ‘玩具名称:' || ' '|| toyRec.toyname||' ' || ‘玩具单价:' || ' '||toyRec.toyprice); END LOOP; END; /
处理带参的循环游标语法如下:
FOR row_record IN cursor_name (parameters)
LOOP
语句;
END LOOP ;
8、REF 游标和游标变量
隐式/显示游标在使用它们的时候查询语句已确定,如需在运行时动态
决定执行什么查询,可使用REF游标和游标变量
创建游标变量需要两个步骤:
- 声明REF游标类型
- 声明REF游标类型的变量
用于声明REF游标类型的语法 为:
TYPE ref_cursor_name
IS REF CURSOR
[RETURN return_type];
语法说明:
return可选子句用于指定游标提取结果集的返回类型,如果
包含return子句表示强类型REF游标,不包含return则为弱
类型REF游标
定义好游标、游标变量后,可在PL/SQL的执行部分打开REF游标,语法为:
OPEN cursor_name FOR select_statement;
注意:提取和关闭游标的语法与显示游标相似
使用: 接收用户输入,选择查看员工信息或者部门信息,
- set serveroutput on
- --accept命令可接收用户输入并存入变量tab中
- ACCEPT tab PROMPT '你想查看什么信息?员工信息(E),部门信息(D):';
- DECLARE
- --声明REF游标(弱类型)
- TYPE refCurT IS REF CURSOR;
- --声明游标变量refCur
- refCur refCurT;
- pId number;
- pName varchar2(100);
- --定义变量selection保存用户输入的字符(E或D)
- selection varchar2(1) := UPPER(SUBSTR('&tab'), 1, 1);
- BEGIN
- --判断用户输入的是不是'E'
- IF selection = 'E' THEN
- --打开游标,同时指定select语句
- OPEN refCur FOR
- --查询员工表
- select empNo id, empName name
- from emp;
- --准备显示员工信息
- DBMS_OUTPUT.PUT_LINE('===员工信息===');
- ELSIF selection = 'D' THEN
- --打开游标,同时指定select语句
- OPEN refCur FOR
- --查询部门表
- select depNo id, depName name
- from dept;
- --准备显示部门信息
- DBMS_OUTPUT.PUT_LINE('===部门信息===');
- ELSE
- --提示输入
- DBMS_OUTPUT.PUT_LINE('请输入员工信息(E) 或 部门信息(D)');
- RETURN;
- END IF;
- --从游标中提取编号、名称,赋值给变量pId、pName
- FETCH refCur INTO pId, pName;
- --循环提取所有信息并显示
- WHILE refCur%FOUND LOOP
- --显示信息
- DBMS_OUTPUT.PUT_LINE('编号:' || pId || ' 名字:' || pName);
- --从游标中提取编号、名称,赋值给变量pId、pName
- FETCH refCur INTO pId, pName;
- END LOOP;
- --关闭游标
- CLOSE refCur;
- END;
- /
set serveroutput on --accept命令可接收用户输入并存入变量tab中 ACCEPT tab PROMPT '你想查看什么信息?员工信息(E),部门信息(D):'; DECLARE --声明REF游标(弱类型) TYPE refCurT IS REF CURSOR; --声明游标变量refCur refCur refCurT; pId number; pName varchar2(100); --定义变量selection保存用户输入的字符(E或D) selection varchar2(1) := UPPER(SUBSTR('&tab'), 1, 1); BEGIN --判断用户输入的是不是'E' IF selection = 'E' THEN --打开游标,同时指定select语句 OPEN refCur FOR --查询员工表 select empNo id, empName name from emp; --准备显示员工信息 DBMS_OUTPUT.PUT_LINE('===员工信息==='); ELSIF selection = 'D' THEN --打开游标,同时指定select语句 OPEN refCur FOR --查询部门表 select depNo id, depName name from dept; --准备显示部门信息 DBMS_OUTPUT.PUT_LINE('===部门信息==='); ELSE --提示输入 DBMS_OUTPUT.PUT_LINE('请输入员工信息(E) 或 部门信息(D)'); RETURN; END IF; --从游标中提取编号、名称,赋值给变量pId、pName FETCH refCur INTO pId, pName; --循环提取所有信息并显示 WHILE refCur%FOUND LOOP --显示信息 DBMS_OUTPUT.PUT_LINE('编号:' || pId || ' 名字:' || pName); --从游标中提取编号、名称,赋值给变量pId、pName FETCH refCur INTO pId, pName; END LOOP; --关闭游标 CLOSE refCur; END; /
9、使用REF游标执行动态SQL语句
EXECUTE IMMEDIATE语句只能处理返回单行或没有返回的SQL语句,
REF游标可处理返回结果集的动态SQL,语法如下:
OPEN cursor_name
FOR 动态SQL语句字符串
[USING 绑定的输入参数]
注意:这种游标,声明部分与普通REF游标相同,只是OPEN语法不一样
使用: 显示薪水高于2500的员工信息,
- SET SERVEROUTPUT ON
- VARIABLE maxSal NUMBER
- EXECUTE :maxSal := 2500
- DECLARE
- empRec emp%ROWTYPE;
- --定义REF游标
- TYPE cType IS REF CURSOR;
- --定义游标变量
- cur cType;
- --薪水
- pSalary number;
- BEGIN
- pSalary := :maxSal;
- --打开游标,设置SQL字符串
- OPEN cur FOR
- 'select * from Emp where sal > :inputSal order by sal desc';
- USING pSalary --使用变量pSalary的值作为输入参数传递给:inputSal
- --循环显示出所有薪水大于指定值的员工
- LOOP
- --使用游标提取行
- FETCH cur INTO empRec;
- --判断所有行是否读取完毕,读取完毕需退出循环
- EXIT WHEN cur%NOTFOUND;
- --显示信息
- DBMS_OUTPUT.PUT_LINE('编号:' || empRec.empNo
- || ' 姓名:' || empRec.eName || ' 薪水:' || empRec.sal);
- END LOOP;
- --关闭游标
- CLOSE cur;
- END;
- /
SET SERVEROUTPUT ON VARIABLE maxSal NUMBER EXECUTE :maxSal := 2500 DECLARE empRec emp%ROWTYPE; --定义REF游标 TYPE cType IS REF CURSOR; --定义游标变量 cur cType; --薪水 pSalary number; BEGIN pSalary := :maxSal; --打开游标,设置SQL字符串 OPEN cur FOR 'select * from Emp where sal > :inputSal order by sal desc'; USING pSalary --使用变量pSalary的值作为输入参数传递给:inputSal --循环显示出所有薪水大于指定值的员工 LOOP --使用游标提取行 FETCH cur INTO empRec; --判断所有行是否读取完毕,读取完毕需退出循环 EXIT WHEN cur%NOTFOUND; --显示信息 DBMS_OUTPUT.PUT_LINE('编号:' || empRec.empNo || ' 姓名:' || empRec.eName || ' 薪水:' || empRec.sal); END LOOP; --关闭游标 CLOSE cur; END; /
10、游标变量的优点和限制
游标变量的优点 有:
- 可从不同的SELECT语句中提取结果集
- 可以作为过程的参数进行传递
- 可以引用游标的所有属性
- 可以进行赋值运算
使用游标变量的限制:
- 不能在程序包中声明游标变量
- FOR UPDATE子句不能与游标变量一起使用
- 不能使用比较运算符
11、总结
- 游标用于处理查询结果集中的数据
- 游标类型有:隐式游标、显式游标 和 REF 游标
- 隐式游标由PL/SQL自动定义、打开和关闭
- 显式游标用于处理返回多行的查询
- 显式游标可以删除和更新活动集中的行
- 要处理结果集中所有记录时,可使用循环游标
- 在声明REF游标时,不需要将 SELECT 语句与其关联
发表评论
-
高级SQL优化
2012-12-08 23:31 850高级SQL优化(一) ... -
oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
2011-10-08 01:45 1066oracle PL/SQL的基本构成,块结构和基本语法要求, ... -
oracle PL/SQL的基本构成,结构控制语句,分支结构,选择结构,loop循环结构,
2011-10-08 01:43 928oracle PL/SQL的基本构成,结构控制语句,分支结构, ... -
oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包
2011-10-08 01:42 1062oracle 创建,删除存储过 ... -
oracle 触发器的种类和触发事件,DML触发器,DDL事件触发器,替代触发器,查看触发器
2011-10-08 01:39 989oracle 触发器的种类和触发事件,DML触发器,DDL事 ... -
oracle 隐式游标,显示游标,游标循环,动态SELECT语句和动态游标,异常处理,自定义异常
2011-10-08 01:31 839oracle 隐式游标,显示游标,游标循环,动态SELE ... -
触发器、内置程序包
2011-10-07 10:19 953触发器、内置程序包 1、技术目标 应用触发器 ... -
子程序、程序包
2011-10-07 10:18 1193子程序、程序包 1、技术目标 创建并使用子程序 ... -
PL/SQL 的使用
2011-10-07 10:15 2139使用PL/SQL 1、技术目标 理解 PL/SQL ... -
同义词、序列、视图、索引
2011-10-07 10:12 1762同义词、序列、视图、 ... -
什么是Oracle归档模式
2011-10-06 23:31 877查看oracle数据库是否为归档模式 [1] 1.se ... -
什么是冷备份和热备份,有什么区别?
2011-10-06 23:19 963对于oracle数据库只有物 ... -
Oracle数据导入导出
2011-10-06 23:17 679Oracle数据导入导出imp/exp就相当于oracle ... -
ORACLE闪回技术
2011-10-06 23:17 7851 .误删了一部分数据 (delete) 想回恢复数据,ora ...
相关推荐
Oracle 游标使用方法及语法大全 Oracle 游标是 PL/SQL 程序中的一种重要组件,用于处理查询结果集。游标可以分为隐式游标和显式游标两种,隐式游标由 PL/SQL 管理,隐式游标打开时查询开始,查询结束时隐式游标自动...
### Oracle游标使用大全 #### 一、概述 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集中的数据。游标允许程序逐行处理数据,这在需要对多行数据进行循环处理时非常有用。本文档旨在提供一个全面的...
### SQL游标使用详解 #### 一、引言 在SQL编程中,游标是一种用于处理查询结果集的工具,可以实现对数据行的逐行访问。本文将通过一个具体的示例来详细介绍如何使用SQL游标,并解释其背后的原理与应用场景。 ####...
以下是关于Oracle游标使用的一些关键知识点: 1. **游标的基本概念**: 游标(Cursor)是一种机制,它允许我们遍历和操作由SQL查询返回的结果集。通过游标,我们可以控制数据的读取顺序,一次只处理一行,或者在...
显式游标需要程序员明确声明、打开、读取、关闭,而隐式游标则由数据库系统自动管理,通常在DML语句(如INSERT、UPDATE、DELETE)中使用。 2. **查询 SELECT… INTO …** 在PL/SQL中,可以使用SELECT… INTO语句将...
在"游标.txt"文件中,可能包含了更多关于Oracle游标的使用实例和技巧,包括游标的声明、动态游标、游标变量、游标表达式以及游标在存储过程和函数中的应用。这些内容可以帮助你更深入地理解和掌握Oracle游标,提高你...
龙摆尾(坚行).sql.txt和游标实例.sql.txt很可能是包含具体游标使用示例的文件,可能涵盖了诸如迭代处理数据、基于条件更新数据等场景。实际应用中,游标常用于循环执行某个操作,例如批量更新满足特定条件的记录...
本资源“Oracle游标使用案例大全”提供了一系列实用的示例,旨在帮助学习者深入理解和掌握Oracle游标的用法。 1. **游标的基本概念** - 游标(Cursor):它是一个数据库系统中的结构,用于存储执行SQL查询后的结果...
### 明确游标使用示例 在下面的例子中,我们将通过几个不同的方法来展示如何使用明确游标: 1. **使用`WHILE`循环遍历游标** 在这个例子中,我们首先创建一个名为`PROC_STU1`的过程,它包含一个明确游标`cur_stu...
### SQL游标使用详解 #### 一、游标概述 在深入探讨SQL游标的使用之前,我们先来了解一下什么是游标。游标是数据库管理系统的功能之一,它允许用户逐行处理查询结果集中的数据。通常情况下,当我们执行一个SELECT...
### 数据库游标使用详解:Oracle数据库视角 在数据库领域,游标(Cursor)是一种用于处理数据查询结果集的强大工具,尤其在Oracle数据库中,游标的应用极为广泛且功能强大。本文将深入探讨Oracle数据库中游标的基本...
### Oracle游标使用及实例详解 #### 一、Oracle游标概述 在Oracle数据库中,游标(Cursor)是一种用于处理SQL查询结果集的方式。它允许用户逐行地读取和处理查询结果,这对于需要对每一行数据进行特定操作的情况非常...
### Oracle游标使用详解 #### 一、游标概述 游标是Oracle数据库中用于处理查询结果集的强大工具,尤其适用于需要逐行处理查询结果的情况。在Oracle中,游标可以分为两类:**显式游标**和**隐式游标**。 1. **隐式...
以上只是对Oracle游标使用的一个简要概述,具体到《Oracle 游标使用大全》这份文档,可能会包含更详尽的示例、技巧和案例,帮助开发者更好地理解和运用Oracle游标。通过学习和实践,我们可以提升数据库操作的效率和...
“Oracle数据库游标使用大全.pdf”这份文档可能详细介绍了以上内容,并提供了具体的示例代码和实践技巧,帮助读者深入理解和应用Oracle数据库游标。通过学习和实践这些知识,开发者能够更好地掌握Oracle数据库编程,...
Oracle 游标使用大全 Oracle 游标是 PL/SQL 中的一种重要的数据访问机制,通过游标,可以高效地访问和处理数据库中的数据。在本文中,我们将对 Oracle 游标的使用进行详细的介绍,包括游标的基本概念、游标的类型、...
### Oracle游标使用详解 #### 一、Oracle游标简介 在Oracle数据库中,游标是一种用于处理查询结果集的强大工具。它允许用户通过逐行访问数据来执行复杂的操作,如更新、删除或插入记录等。游标可以分为显式游标和...
### Oracle的游标使用详解 #### 一、游标概念介绍 在Oracle数据库中,游标(Cursor)是一种用于检索并处理多行数据的强大工具。它允许用户通过循环逐条处理查询结果集中的每一行数据,这对于需要进行复杂数据处理的...
根据给定的文件信息,我们可以总结出以下关于标准游标使用的相关知识点: ### 一、标准游标的定义 在数据库管理领域中,游标是一种重要的数据处理机制,它允许程序逐行地处理查询结果集中的数据。游标可以看作是...