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

Oracle游标使用的经验总结

阅读更多

以下的文章主要是介绍Oracle游标使用,以下就是具体方案的描述,希望在你今后的学习中会有所帮助。首先我们要用到的是SELECT语句,其用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。

SELECT INTO语法如下:

1.              SELECT [DISTICT|ALL]{*|column[,column,...]}  

2.              INTO (variable[,variable,...] |record)  

3.              FROM {table|(sub-query)}[alias]  

4.              WHERE............  

PL/SQLSELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式Oracle游标(对游标的讨论我们将在后面进行),INTO子句中要有与SELECT子句中相同列数量的变量。INTO子句中也可以是记录变量。

%TYPE属性

PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。

 例:

1.              v_empno SCOTT.EMP.EMPNO%TYPE;  

2.              v_salary EMP.SALARY%TYPE;  

不但列名可以使用%TYPE,而且变量、Oracle游标、记录,或声明的常量都可以使用%TYPE。这对于定义相同数据类型的变量非常有用。

1.              DELCARE  

2.              V_A NUMBER(5):=10;  

3.              V_B V_A%TYPE:=15;  

4.              V_C V_A%TYPE;  

5.              BEGIN  

6.              DBMS_OUTPUT.PUT_LINE  

7.              ('V_A='||V_A||'V_B='||V_B||'V_C='||V_C);  

8.              END  

9.              SQL>/  

10.           V_A=10 V_B=15 V_C=  

11.           PL/SQL procedure successfully completed.  

12.           SQL>   

其他DML语句

其它操作数据的DML语句是:INSERTUPDATEDELETELOCK TABLE,这些语句在PL/SQL中的语法与在SQL中的语法相同。我们在前面已经讨论过DML语句的使用这里就不再重复了。在DML语句中可以使用任何在DECLARE部分声明的变量,如果是嵌套块,那么要注意变量的作用范围。

例:

1.              CREATE OR REPLACE PROCEDURE FIRE_EMPLOYEE (pempno in number)  

2.              AS  

3.              v_ename EMP.ENAME%TYPE;   

4.              BEGIN   

5.              SELECT ename INTO v_ename   

6.              FROM emp   

7.              WHERE empno=p_empno;   

8.              INSERT INTO FORMER_EMP(EMPNO,ENAME)   

9.              VALUES (p_empno,v_ename);   

10.           DELETE FROM emp   

11.           WHERE empno=p_empno;   

12.           UPDATE former_emp   

13.           SET date_deleted=SYSDATE   

14.           WHERE empno=p_empno;   

15.           EXCEPTION   

16.           WHEN NO_DATA_FOUND THEN   

17.           DBMS_OUTPUT.PUT_LINE('Employee Number Not Found!');   

18.           END   

DML语句的结果

当执行一条DML语句后,DML语句的结果保存在四个Oracle游标属性中,这些属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性.SQL%FOUND,SQL%NOTFOUND是布尔值,SQL%ROWCOUNT是整数值。

SQL%FOUNDSQL%NOTFOUND

在执行任何DML语句前SQL%FOUNDSQL%NOTFOUND的值都是NULL,在执行DML语句后,SQL%FOUND的属性值将是:

. TRUE :INSERT

. TRUE :DELETEUPDATE,至少有一行被DELETEUPDATE.

. TRUE :SELECT INTO至少返回一行

SQL%FOUNDTRUE,SQL%NOTFOUNDFALSE

SQL%ROWCOUNT

在执行任何DML语句之前,SQL%ROWCOUNT的值都是NULL,对于SELECT INTO语句,如果执行成功,SQL%ROWCOUNT的值为1,如果没有成功,SQL%ROWCOUNT的值为0,同时产生一个异常NO_DATA_FOUND.

SQL%ISOPEN

SQL%ISOPEN是一个布尔值,如果游标打开,则为TRUE, 如果Oracle游标关闭,则为FALSE.对于隐式游标而言SQL%ISOPEN总是FALSE,这是因为隐式游标在DML语句执行时打开,结束时就立即关闭。

 

分享到:
评论

相关推荐

    oracle 游标,存储过程,SQL优化的总结

    在黄龙飞先生的简历中,他展示了丰富的IT技能,包括熟练使用Oracle(包括存储过程和游标),这表明他在数据库管理和性能优化方面具有扎实的基础。他在项目中运用了Spring、Ibatis等技术,结合Oracle的存储过程进行...

    oracle的SQL语句的一些经验总结

    以上只是Oracle SQL使用中的一部分关键知识点,实际经验总结可能还包含更多关于性能调优、错误处理、数据转换、安全策略等方面的内容。在实践中,理解并熟练运用这些概念对于有效管理和利用Oracle数据库至关重要。

    游标实例与返回结果集的存储过程

    根据提供的文件信息,我们可以深入探讨其中涉及的关键概念和实践应用,包括Oracle中的游标使用方法、存储过程的定义以及如何创建并调用返回结果集的存储过程。 ### 1. 游标的使用方法 #### 1.1 游标基本概念 在...

    oracle总结oracle总结面试必备

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级应用中占据着核心地位。以下是对Oracle数据库一些关键知识点的详细阐述,这些内容对于...在实践中,不断学习和积累经验,才能成为真正的Oracle大师。

    ORACLE数据库PROC编程经验介绍

    总结起来,PROC编程是Oracle数据库提供的一种高效且灵活的C语言接口,允许开发者直接操作数据库。通过掌握宿主变量声明、错误处理、SQL语句执行、游标管理和事务控制等关键技术,可以编写出强大的数据库应用程序。在...

    Oracle经典教程 Oracle基本知识

    - **游标**:掌握游标的使用技巧,提高数据处理效率。 ##### 3.4 Oracle基本管理 - **用户和权限管理**:创建用户账户,分配适当的权限。 - **角色管理**:定义角色并将其分配给用户。 - **备份与恢复**:学习如何...

    Oracle Tuning的一些总结.docx

    此外,应用程序的优化也很重要,如合理使用游标,避免长时间锁定资源,以及及时释放不再使用的内存。 为了深入理解Oracle Tuning,建议阅读相关的专业书籍,不断学习和实践,以便在面对复杂的性能问题时,能有效地...

    DBA对Oracle SQL编写规范的总结

    本文档由一位经验丰富的数据库管理员(DBA)撰写,旨在总结一系列最佳实践,帮助开发人员在编写SQL语句时更加高效、准确。 #### 二、SQL语句基本编码规范 ##### 2.1 英文字母编写 - **规范要求**:SQL语句中除存储...

    oracle,ssh总结资料

    综上所述,"oracle,ssh总结资料"包含的是关于Oracle数据库、SQLServer数据库、Java编程以及JavaScript的基础知识和实践经验。这些技能对于一个Web开发者来说至关重要,能够帮助他们构建高效、稳定且用户友好的Web...

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

    根据提供的标题、描述、标签及部分内容,我们可以总结出以下关键知识点: ...以上内容涵盖了Oracle数据库的基础知识、体系结构、性能调优等多个方面,对于初学者和有一定经验的DBA都是非常有价值的资料。

    2011版李兴华主讲-ORACLE实战 最强大的数据库课程MLDN出品—oracle课堂笔记(全).rar

    本课程“2011版李兴华主讲-ORACLE实战 最强大的数据库课程MLDN出品”由知名讲师李兴华主讲,旨在为学习者提供深入的Oracle实战经验和技术解析。该课程可能涵盖了大量的Oracle数据库管理、开发和优化的知识点,是提升...

    Oracle PL/SQL程序设计(第5版)(上下册)

    ### Oracle PL/SQL程序设计(第5版)(上下册)知识点概述 ...本书不仅覆盖了PL/SQL的基础知识,还包括了大量的实战经验和高级主题,对于想要深入了解和掌握Oracle数据库的读者来说是非常宝贵的资源。

    oracle 学习电子书 学习文档 ppt

    通过这份"Oracle学习电子书 学习文档 ppt",你可以系统地学习Oracle的相关知识,无论是初学者还是有一定经验的开发者,都能从中受益,提升自己的Oracle技术水平。记得理论与实践相结合,多做实验,这样才能更好地...

    超详细Oracle教程.pdf

    ### 超详细Oracle教程知识点总结 #### 引言 - **SUN与Oracle合并背景**:2008年初,SUN以10亿美元收购MySQL;2009年4月,Oracle以74亿美元收购SUN。此次合并不仅加强了Oracle在数据库领域的领导地位,还为其带来了...

    Oracle PL_SQL Language Pocket Reference, 5th Edition.2015.pdf

    - **游标管理**:介绍如何使用游标来处理记录集,包括显式游标和隐式游标的使用方法。 ##### 3. 异常处理 - **异常**:PL/SQL提供了一套异常处理机制,可以捕获和处理运行时错误。 - **预定义异常**:介绍PL/SQL预...

    oracle初学者指南

    Oracle数据库是全球广泛使用的大型关系...总结,Oracle初学者应从基础理论入手,逐步熟悉Oracle的各项操作,同时不断实践,加深理解。随着经验的积累,你将能够熟练地管理和维护Oracle数据库,应对各种复杂的业务场景。

    oracle实战练习

    在实践过程中,建议你动手创建自己的数据库实例,根据提供的"Oracle实战练习"逐步操作,遇到问题时查阅官方文档或在线资源,不断试错并总结经验。记住,理论知识与实际操作相结合是学习Oracle的最佳途径,避免单纯地...

    oracle常用工具函数--多年经验总结及示例演示

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其丰富的工具函数和操作命令为数据库管理和开发提供了强大支持。本文将深入探讨在Oracle中常用的工具函数,这些函数在日常的数据查询、处理和维护中扮演着...

    关于Oracle数据库的一些基础知识

    总结,Oracle数据库的学习是一个循序渐进的过程,从掌握基本的SQL语法和数据库概念,到熟悉数据库管理与优化,再到解决实际问题,都需要不断实践和积累经验。通过阅读"Oracle数据库傻瓜一千问"和深入学习相关文档,...

Global site tag (gtag.js) - Google Analytics