`
123003473
  • 浏览: 1064843 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle 10g使用游标更新或删除数据

 
阅读更多
在定义又表示必须要带有for update子句,用于在游标结果集数据上加行共享锁,以防止其他用户在相应行上执行dml操作;当select语句引用到多张表时,使用of子句可以确定哪些表要加锁,如果没有of子句,则会在select语句所引用的全部表上加锁;nowait子句用于指定不等待锁。在提取了游标数据之后,为了更新或删除当前游标行数据,必须在update或delete语句中引用where current of 子句。
--1、使用游标更新数据
1.declare   
2.cursor emp_cursor is   
3.--加行共享锁   
4.select t.name,t.english_name from communitytype t for update;   
5.--定义变量   
6.v_name communitytype.name%type;   
7.v_enname communitytype.english_name%type;   
8.begin   
9.--打开游标   
10.open emp_cursor;   
11.loop   
12.fetch emp_cursor into v_name,v_enname;   
13.exit when emp_cursor%notfound;   
14.if v_name = '电子图书' then   
15.update communitytype c   
16.set c.english_name = 'ebook'  
17.where current of emp_cursor;   
18.end if;   
19.end loop;   
20.close emp_cursor;   
21.commit;   
22.end;  


--2、使用游标删除数据,同上只需要将更新语句换成删除语句
--3、使用of子句在特定表上加行共享锁
1.declare   
2.cursor emp_cursor is   
3.--加行共享锁   
4.select t.name,t.english_name from communitytype t for update of t.name;   
5.--定义基于游标的记录变量   
6.emp_record emp_cursor%rowtype;   
7.begin   
8.--打开游标   
9.open emp_cursor;   
10.loop   
11.fetch emp_cursor into emp_record;   
12.exit when emp_cursor%notfound;   
13.if emp_record.name = '电子图书' then   
14.update communitytype c   
15.set c.english_name = 'ebook'  
16.where current of emp_cursor;   
17.end if;   
18.end loop;   
19.close emp_cursor;   
20.commit;   
21.end;  


--4、默认情况下当前会话要一直等待对方释放锁,使用nowait子句可以避免等待锁
1.declare   
2.cursor emp_cursor is   
3.--加行共享锁   
4.select t.name,t.english_name from communitytype t for update nowait;   
5.--定义基于游标的记录变量   
6.emp_record emp_cursor%rowtype;   
7.begin   
8.--打开游标   
9.open emp_cursor;   
10.loop   
11.fetch emp_cursor into emp_record;   
12.exit when emp_cursor%notfound;   
13.if emp_record.name = '电子图书' then   
14.update communitytype c   
15.set c.english_name = 'ebook'  
16.where current of emp_cursor;   
17.end if;   
18.end loop;   
19.close emp_cursor;   
20.commit;   
21.end;  


【转载地址】http://zheng12tian.iteye.com/blog/815770
分享到:
评论

相关推荐

    oracle10g 函数返回游标类型

    游标是数据库中的一个重要概念,它允许用户在数据库中定位、检索、更新和删除数据行。当函数返回一个游标时,调用者可以使用循环或其他迭代结构来访问所有返回的记录,而不仅仅是单个结果。 ### 描述:“根据所示...

    oracle10G和oracle11G的OCI.dll

    1. OCI接口:OCI提供了丰富的API(应用程序编程接口)集合,使得开发者能够通过C语言编写应用程序,实现对Oracle数据库的各种操作,如查询、插入、更新和删除数据,事务控制,游标处理等。oci.dll作为这些API的实现...

    oracle存储过程游标

    ### Oracle 存储过程与游标使用详解 在Oracle数据库管理中,存储过程与游标是两个非常重要的概念。它们可以提高数据处理的效率、增强应用程序的灵活性,并且能够简化复杂的数据库操作。本文将根据提供的内容,深入...

    ORACLE 10G OCP 题库

    Oracle 10g OCP(Oracle Certified Professional)是Oracle公司为数据库管理员提供的专业认证,它证明了持证者在管理Oracle 10g数据库系统方面具备高级技能和知识。这个题库是准备Oracle 10g OCP考试的重要资源,...

    oracle开启关闭命令

    - 通过ODBC数据源管理器删除与Oracle相关的数据源。 9. **清理注册表中的额外条目**: - `HKEY-LOCAL-MACHINE/SOFTWARE/ORACLE` - `HKEY-LOCAL-MACHINE/SYSTEM/CURRENTCONTROLSET001/SERVICEеORACLE` - `HKEY-...

    oracle 10g 官方教材

    3. **SQL语言基础**:Oracle 10g支持标准SQL,包括数据查询、插入、更新和删除,以及更复杂的SQL语句,如联接、子查询和集合操作。理解SQL语法和性能调优技巧是数据库管理员的基础技能。 4. **PL/SQL编程**:Oracle...

    Oracle11g中文文档

    10. **数据仓库和OLAP**:Oracle11g支持构建数据仓库,利用星型和雪花型模式,以及物质化视图、分区、物化 join 来提高分析查询性能。Oracle OLAP提供多维数据处理和分析功能。 这些只是Oracle11g众多特性和功能的...

    精通Oracle 10g SQL和PL SQL.zip

    Oracle 10g SQL与PL/SQL是数据库管理和开发领域中的核心技术,对于任何希望深入理解Oracle数据库系统的专业人士来说,这些都是必须掌握的知识。本资源“精通Oracle 10g SQL和PL SQL.zip”提供了全面的学习指南,帮助...

    Oracle 10G 参考手册 Oracle SQL Reference pdf

    Oracle 10G SQL Reference是Oracle数据库系统的重要文档之一,主要涵盖了在Oracle 10G环境中执行SQL查询、数据操作和数据库管理的核心概念和技术。这个参考手册为数据库管理员(DBA)、开发人员以及数据分析师提供了...

    oracle9i oracle11g oracle10g 性能调优 基础学习 视频地址

    - **Oracle11g**: Oracle11g在Oracle10g的基础上增加了更多的功能和改进,包括更好的分区支持、自动诊断框架、实时应用测试、更快的数据泵等。 ### 2. Oracle体系结构 - **体系结构概述**: Oracle数据库的体系结构...

    Oracle11g从入门到精通2

     Oracle数据库系统是数据库领域最优秀的数据库之一,《Oracle11g从入门到精通》以Oracle最新版本Oracle 11g为蓝本,系统地讲述了Oracle数据库的概念、管理和应用开发等内容。  全书结构合理、内容翔实、示例丰富...

    Oracle 10g 学习课件

    Oracle 10g是其第十个主要版本,发布于2003年,引入了许多创新特性,提升了性能、可靠性和易用性。 1. **Oracle数据库基础** - 数据库概念:了解关系型数据库的基本原理,如表、索引、视图、存储过程等。 - SQL...

    Oracle 10g SQL操作和PLSQL所有命令集合

    Oracle 10g是一款强大的关系型数据库管理系统,其SQL(结构化查询语言)和PL/SQL(过程化SQL)是数据库管理员和开发人员进行数据管理、处理和应用开发的重要工具。下面将详细介绍这些主题中的关键知识点。 首先,...

    oracle 11g基础入门培训(10

    Oracle 11g使用SQL(结构化查询语言)进行数据查询、插入、更新和删除。学习SQL基础,包括SELECT语句、DML(数据操纵语言)操作、以及DDL(数据定义语言)用于创建和修改表结构,是掌握Oracle 11g的关键步骤。 四、...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    能够使用Oracle 11g的基本条件 在Windows 2003上安装Oracle 11g 移除Oracle 11g 第3章-熟悉数据库 什么是数据库 范式,设计关系型数据库的准则 绘制E-R图设计数据库 第4章-SQL基础 SQL-数据库沟通的语言...

    Oracle 11g 从入门到精通(初学者)

    Oracle 11g是Oracle公司推出的数据库管理系统的一个版本,它为用户提供了一套全面的数据管理和分析工具。对于初学者来说,掌握Oracle 11g的基本概念、安装与配置、SQL语言、表空间管理、备份恢复以及安全管理等核心...

    Oracle 11g视频教程(窗内网)

    最后,Oracle 11g还支持高级特性,如存储过程、触发器、游标、PL/SQL编程,以及数据仓库和OLAP(在线分析处理)功能。这些高级特性使得Oracle 11g不仅能满足常规的CRUD操作,还能支持复杂的数据处理和业务逻辑。 ...

    Oracle 11g 驱动

    在Java开发中,为了实现数据库操作,如查询、插入、更新或删除数据,开发者通常会依赖数据库驱动。Oracle 11g 提供了两种不同版本的驱动,即OJDBC5和OJDBC6,它们主要的区别在于对Java Development Kit (JDK) 版本的...

Global site tag (gtag.js) - Google Analytics