- 浏览: 326339 次
文章分类
- 全部博客 (116)
- Oracle (29)
- MySQL (2)
- Java (20)
- .NET (2)
- Javascript (4)
- Spring (6)
- Struts (6)
- Hibernate (16)
- JSP (6)
- Tomcat (1)
- Quartz (2)
- RCS (1)
- Translate (12)
- PL/SQL (5)
- Sqlplus (1)
- System (6)
- Linux (11)
- Ubuntu (9)
- Windows (10)
- Mac (2)
- Tools (8)
- Mercurial (1)
- Google Code (1)
- Subversion (1)
- Debian (2)
- Freemarker (6)
- Web (2)
- PHP (1)
- Nginx (1)
最新评论
-
sunday1207:
private Class getParameterizedT ...
java 中 BaseDao 在Hibernate中的用法 -
SkimSkim:
你这里的解压是把文件夹11下面的所有文件都放在ins这个文件夹 ...
ubuntu 在终端使用 sqlplus 连接远程数据库 -
as619864232:
漫步邃思 写道其实常用的就那么几个命令,大部分都用不到的是啊, ...
windows cmd 命令 -
漫步邃思:
其实常用的就那么几个命令,大部分都用不到的
windows cmd 命令
循环将游标中的数据提取出来并放置2个变量中输出
SQL> declare 2 cursor dept_cur is select d.deptno,d.dname from scott.dept d; 3 dno scott.dept.deptno%type; 4 dnm scott.dept.dname%type; 5 begin 6 open dept_cur; 7 loop 8 fetch dept_cur into dno,dnm; 9 exit when dept_cur%notfound; 10 dbms_output.put_line(dno||' '||dnm); 11 end loop; 12 close dept_cur; 13 end; 14 / 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS
循环将游标中的数据提取出来并放置 PL/SQL 记录中输出
declare cursor dept_cur is select d.deptno,d.dname from scott.dept d; type dept_record_type is record( dno scott.dept.deptno%type, dnm scott.dept.dname%type ); dept_record dept_record_type; begin open dept_cur; loop fetch dept_cur into dept_record; exit when dept_cur%notfound; dbms_output.put_line(dept_record.dno||' '||dept_record.dnm); end loop; close dept_cur; end; 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS
将游标中的所有数据一次性提取出来并放置 PL/SQL 记录表中循环输出
SQL> declare 2 cursor dept_cur is select d.deptno,d.dname from scott.dept d; 3 type dept_record_type is record( 4 dno scott.dept.deptno%type, 5 dnm scott.dept.dname%type 6 ); 7 dept_record dept_record_type; 8 begin 9 open dept_cur; 10 loop 11 fetch dept_cur into dept_record; 12 exit when dept_cur%notfound; 13 dbms_output.put_line(dept_record.dno||' '||dept_record.dnm); 14 end loop; 15 close dept_cur; 16 end; 17 / 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONS
每次从游标中提取指定行记录放置 PL/SQL 记录表中并循环输出
SQL> declare 2 cursor my_cur is select e.empno,e.ename from scott.emp e; 3 type emp_record_type is record( 4 eno scott.emp.empno%type, 5 enm scott.emp.ename%type 6 ); 7 type emp_table_type is table of emp_record_type; 8 emp_table emp_table_type; 9 r int:=5; 10 begin 11 open my_cur; 12 loop 13 fetch my_cur bulk collect into emp_table limit r; --批量处理不需要初始化变量大小 14 for i in 1..emp_table.count loop 15 dbms_output.put_line(emp_table(i).eno||' '||emp_table(i).enm); 16 end loop; 17 exit when my_cur%notfound; 18 end loop; 19 close my_cur; 20 end; 21 / 7369 SMITH 7499 ALLEN 7521 WARD 7566 JONES 7654 MARTIN 7698 BLAKE 7782 CLARK 7788 SCOTT 7839 KING 7844 TURNER 7876 ADAMS 7900 JAMES 7902 FORD 7934 MILLER
将游标作为数据类型赋值后循环输出
SQL> declare 2 cursor my_cur is select e.empno,e.ename from scott.emp e; 3 type emp_table_type is table of my_cur%rowtype; 4 emp_table emp_table_type; 5 r int:=5; 6 begin 7 open my_cur; 8 loop 9 fetch my_cur bulk collect into emp_table limit r; 10 for i in 1..emp_table.count loop 11 dbms_output.put_line(emp_table(i).empno||' '||emp_table(i).ename); 12 end loop; 13 exit when my_cur%notfound; 14 end loop; 15 close my_cur; 16 end; 17 / 7369 SMITH 7499 ALLEN 7521 WARD 7566 JONES 7654 MARTIN 7698 BLAKE 7782 CLARK 7788 SCOTT 7839 KING 7844 TURNER 7876 ADAMS 7900 JAMES 7902 FORD 7934 MILLER
带参游标的使用
SQL> declare 2 cursor my_cur(eno int) is select e.empno,e.ename from scott.emp e where empno=eno; 3 emp_table my_cur%rowtype; 4 begin 5 open my_cur(7788); 6 fetch my_cur into emp_table; 7 dbms_output.put_line(emp_table.empno||' '||emp_table.ename); 8 close my_cur; 9 end; 10 / 7788 SCOTT SQL> declare 2 cursor my_cur(eno int defalut 7788) is select e.empno,e.ename from scott.emp e where empno=eno; 3 emp_table my_cur%rowtype; 4 begin 5 open my_cur; 6 fetch my_cur into emp_table; 7 dbms_output.put_line(emp_table.empno||' '||emp_table.ename); 8 close my_cur; 9 end; 10 / 7788 SCOTT
使用游标更新数据
declare cursor my_cur is select e.sal from emp e for update; v_oldsal emp.sal%type; begin open my_cur; loop fetch my_cur into v_oldsal; exit when my_cur%notfound; if v_oldsal < 2000 then null; update emp set sal=sal+100 where current of my_cur; end if; end loop; close my_cur; end;
使用游标删除数据
declare cursor my_cur is select deptno from emp2 for update; dno dept.deptno%type; begin open my_cur; loop fetch my_cur into dno; exit when my_cur%notfound; if dno = 20 then delete from emp2 where current of my_cur; end if; end loop; close my_cur; end;
使用游标 FOR 循环
SQL> set serveroutput on SQL> declare 2 cursor my_cur is select e.empno,e.ename from scott.emp e; 3 myemp my_cur%rowtype; 4 begin 5 for myemp in my_cur loop 6 dbms_output.put_line('第'||my_cur%rowcount||'个员工:'||myemp.ename); 7 end loop; 8 end; 9 / 第1个员工:SMITH 第2个员工:ALLEN 第3个员工:WARD 第4个员工:JONES 第5个员工:MARTIN 第6个员工:BLAKE 第7个员工:CLARK 第8个员工:SCOTT 第9个员工:KING 第10个员工:TURNER 第11个员工:ADAMS 第12个员工:JAMES 第13个员工:FORD 第14个员工:MILLER PL/SQL procedure successfully completed
在 FOR 循环中使用子查询
SQL> declare 2 begin 3 for emp_record in (select ename,sal from emp) loop 4 dbms_output.put_line(emp_record.ename); 5 end loop; 6 end; 7 / SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER PL/SQL procedure successfully completed
使用游标变量
declare type ref_type_myc is ref cursor return emp%rowtype; my_cur ref_type_myc; type emp_table_type is table of emp%rowtype; emp_table emp_table_type; begin open my_cur for select * from emp; fetch my_cur bulk collect into emp_table; for i in 1..emp_table.count loop dbms_output.put_line(emp_table(i).ename); end loop; end;
嵌套游标的使用
SQL> set serverout on; SQL> declare 2 type my_refcur_type is ref cursor; 3 my_refcur my_refcur_type; 4 cursor my_cur is 5 select d.dname,cursor(select ename,sal from emp where deptno=d.deptno) from dept d; 6 dnm dept.dname%type; 7 enm emp.ename%type; 8 sal emp.sal%type; 9 begin 10 open my_cur; 11 loop 12 fetch my_cur into dnm,my_refcur; 13 exit when my_cur%notfound; 14 dbms_output.put_line(dnm); 15 loop 16 fetch my_refcur into enm,sal; 17 exit when my_refcur%notfound; 18 dbms_output.put_line(enm||' '||sal); 19 end loop; 20 end loop; 21 end; 22 / ACCOUNTING CLARK 2695 KING 5500 MILLER 1530 RESEARCH SMITH 900 JONES 2975 SCOTT 3000 ADAMS 1200 FORD 3000 SALES ALLEN 1860 WARD 1475 MARTIN 1475 BLAKE 3135 TURNER 1750 JAMES 1145 OPERATIONS PL/SQL procedure successfully completed
发表评论
-
Mysql 与 Oracle 的一些区别
2012-10-01 13:17 1492周五去一家公司去面试,那公司经理问了关于Mysql与Oracl ... -
Oracle 数据的导入和导出
2012-09-17 19:17 1168数据导出: 1 将数据库TEST完全导出,用户名system ... -
ubuntu 在终端使用 sqlplus 连接远程数据库
2012-08-27 14:54 4006在 http://www.oracle.com/technet ... -
Oracle 批量操作
2012-08-13 12:44 943简单的写一个批量赋予权限的语句备用,其他类似: sel ... -
Oracle 中的 FORALL 语句
2012-04-13 11:52 15003当要在 Oracle 中之心批量 INSERT、UPDATE ... -
PL/SQL 记录
2012-04-09 16:36 1036PL/SQL 中可以使用 %ROWTYPE 作为一张表的行作为 ... -
PL/SQL 索引表、嵌套表、变长数组的区别
2012-04-08 13:38 1126索引表 嵌套表 变长数组 ... -
oracle 中的循环
2012-04-06 09:36 1402一、LOOP 循环是最简单的循环,也是无限循环,只能用 EXI ... -
oracle 中的动态 SQL
2012-04-06 09:36 1065在 PL/SQL 块中,可以使用 DDL 语句和事物控制语句, ... -
oracle 中的 CASE
2012-04-05 15:42 1192oracle 中的 CASE 可以作为一个选择控制语句,可以根 ... -
oracle 中的属性数据类型
2012-04-05 15:17 1638当需要数据库表中的某行作为一个数就类型时,就需要 %ROWTY ... -
oracle 中的 SELECT...INTO 语句
2012-04-05 15:03 2642SELECT...INTO 语句可以给多个值同时赋值,届时两边 ... -
oracle 中的表分区
2012-04-05 14:47 1050当数据库的数据不断扩大时,这时可以考虑是用表分区,查询时可以根 ... -
oracle 中的同义词
2012-04-05 14:12 1338同义词(Synonym)是数据库对象的一个别名,oracle ... -
oracle 使用 ROUND 和 EXTRACT 操作日期
2012-04-03 18:59 2114SQL> select to_char(sysdate, ... -
Oracle 中的 ROWID 和 ROWNUM
2012-04-03 17:56 1184在 Oracle 的表的使用过程中,实际表中还有一些附加的列, ... -
Oracle 总结
2012-04-02 16:57 1006一、走进Oracle 1:oracle 数据库产品是 ... -
oracle 所有错误编号解释
2012-03-31 15:09 1217oracle 所有官方错误编号解释:http://docs.o ... -
oracle 字符串连接
2012-03-31 13:52 1140SQL> select 1 || 2 from dual ... -
oracle 外联接
2012-03-31 13:37 1094oracle 外联接 “(+)” 的用法: Connecte ...
相关推荐
Oracle 数据库游标的使用方法 Oracle 数据库游标是指在查询返回结果超过一行时,需要使用的显式游标。用户不能使用 select into 语句,而是需要使用游标来处理多行查询结果。在 PL/SQL 中,隐式游标会在查询开始时...
3. **游标的使用方法**: - **声明游标**:使用`DECLARE`关键字定义游标,指定查询语句和返回的数据类型。 - **打开游标**:使用`OPEN`语句打开游标,准备进行`FETCH`操作。 - **提取数据**:使用`FETCH`语句从...
Oracle数据库游标是数据库编程中的一个重要概念,尤其在处理大量数据时,它们提供了一种有效且灵活的方法。游标允许程序逐行访问查询结果集,而不是一次性加载所有数据。这在处理复杂的数据操作,如循环处理、条件...
Oracle 游标使用方法及语法大全 Oracle 游标是 PL/SQL 程序中的一种重要组件,用于处理查询结果集。游标可以分为隐式游标和显式游标两种,隐式游标由 PL/SQL 管理,隐式游标打开时查询开始,查询结束时隐式游标自动...
在这个主题中,我们将深入探讨游标的定义、类型、使用方法以及在实际应用中的重要性。 游标(Cursor)在数据库中扮演着数据指针的角色,它允许我们在结果集中移动,读取单个记录或更新特定行。Oracle提供两种类型的...
本篇文章将详细解析Oracle数据库中游标的使用方法。 首先,游标分为隐式游标和显式游标。隐式游标是由PL/SQL引擎自动管理的,通常在单行查询中使用,如`SELECT INTO`语句。而显式游标则是程序员在PL/SQL块中明确...
### Oracle游标使用详解 #### 一、游标概述 游标是Oracle数据库中用于处理查询结果集的强大工具,尤其适用于需要逐行处理查询结果的情况。在Oracle中,游标可以分为两类:**显式游标**和**隐式游标**。 1. **隐式...
游标的类型、属性、循环使用方法以及异常处理,都是理解和掌握游标操作的必要知识。随着Oracle数据库的不断更新和发展,对于初学者和数据库管理员来说,学习和使用游标是数据库管理和编程中必不可少的技能之一。
在`oracle游标.txt`中,你可以学习到如何声明、打开、读取和关闭游标。游标在处理大量数据时非常有用,特别是在需要逐行处理或循环遍历结果集的情况下。例如,如果你需要更新数据库中满足特定条件的所有行,游标将是...
这篇文档《Oracle 游标使用大全》应该涵盖了关于Oracle游标的各种使用方法和最佳实践。 1. **游标的定义与类型** - 游标(Cursor)是数据库系统中一个概念,用于跟踪查询结果集中的当前位置。 - Oracle游标有两种...
通过本篇Oracle游标的使用大全,我们可以了解到Oracle数据库游标的类型、属性以及如何在PL/SQL中实现对数据集的逐行处理。这不仅有助于提升程序员的编程技能,也能使他们更深入地理解PL/SQL与Oracle数据库之间的交互...
根据提供的标题、描述以及部分代码内容,我们可以详细探讨Oracle游标的使用方法,特别是明确游标(Explicit Cursor)和隐式游标(Implicit Cursor)的区别及其具体应用方式。 ### Oracle游标简介 在Oracle数据库中...
### Oracle的游标使用详解 #### 一、游标概念介绍 在Oracle数据库中,游标(Cursor)是一种用于检索并处理多行数据的强大工具。...熟练掌握游标的使用方法,能够极大地提高开发效率并优化应用程序性能。
本资源“Oracle游标使用案例大全”提供了一系列实用的示例,旨在帮助学习者深入理解和掌握Oracle游标的用法。 1. **游标的基本概念** - 游标(Cursor):它是一个数据库系统中的结构,用于存储执行SQL查询后的结果...
Oracle游标是数据库编程中非常重要的一个概念,主要用于处理SQL查询返回的多行结果集。在PL/SQL中,游标分为隐式游标和显式游标。 1. **隐式游标**:在PL/SQL中,每当执行一个SELECT语句时,系统会自动打开一个隐式...
在Oracle数据库中,...综上所述,Oracle中的循环游标、序列、异常处理、ROWID定位和高级游标用法都是开发高效、健壮的数据库应用程序所必需的关键技术。掌握这些技术,可以让你在处理复杂数据库任务时更加得心应手。
### 关于游标的说明与使用方法 #### 一、什么是游标? 在数据库技术中,**游标**是一种用于检索查询结果集中的数据的方式。它允许用户逐行处理记录集,而不是一次处理整个记录集。这使得游标成为处理大量数据时的...
综上所述,Oracle游标及其相关概念是PL/SQL编程中不可或缺的一部分,它们为数据处理提供了强大的工具和灵活性。正确理解和运用游标、%TYPE属性、DML语句以及事务控制等概念,对于高效开发和维护Oracle数据库应用程序...