`

『转』Oracle PL/SQL中如何使用%TYPE和%ROWTYPE

阅读更多
1. 使用%TYPE


在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量:


DECLARE


       v_FirstName VARCHAR2(20);


但是如果first_name列的定义改变了会发生什么(比如说表改变了,first_name现在的类型变为VARCHAR2(25))?那就会导致所有使用这个列的PL/SQL代码都必须进行修改。如果你有很多的PL/SQL代码,这种处理可能是十分耗时和容易出错的。


这时,你可以使用”%TYPE”属性而不是将变量类型硬性编码。


例如:


DECLARE


       v_FirstName students.first_name%TYPE;


通过使用%TYPE,v_FirstName变量将同students表的first_name列的类型相同(可以理解为将两者邦定起来)。


每次匿名块或命名块运行该语句块以及编译存储对象(过程、函数、包、对象类和触发器)时,就会确定该类型。


使用%TYPE是非常好的编程风格,因为它使得PL/SQL更加灵活,更加适应于对数据库定义的更新。


2. 使用%ROWTYPE


2.1 PL/SQL记录


PL/SQL记录类型类似于C语言中的结构,是一种复合类型,是用户自定义的。


记录提供了一种处理独立的但又作为一个整体单元相关的变量的机制。请看:


DECLARE


       v_StudentID NUMBER(5);


       v_FirstName VARCHAR2(20);


       v_LastName VARCHAR2(20);


这3个变量在逻辑上是相互关联的,因为他们指向students表中不同的字段。如果为这些变量声明一个记录类型,那么他们之间的关系就十分明显,可作为一个单元进行处理。


DECLARE


       /*Define a record type to hold common student informationi*/


       TYPE t_StudentRecord IS RECORD(


              StudentID NUMBER(5),


              FirstName VARCHAR2(20),


              LastName VARCHAR2(20);


       /*Declare a variable of this type.*/


       v_StudentInfo t_StudentRecord;


2.2 记录赋值


       可以用SELECT语句向记录赋值,这将会从数据库中检索数据并将该数据存储到记录中。注意的是,记录中字段应该和查询结果列表中的字段相匹配。


SELECT studentID,firstName,lastName


into v_StudentInfo


from students where studentID=32;


2.3 使用%ROWTYPE


在PL/SQL中将一个记录声明为具有相同类型的数据库行的作法是很常见的。PL/SQL提供了%ROWTYPE运算符,使得这样的操作更为方便。


例如:


DECLARE


       v_RoomRecord rooms%ROWTYPE;


将定义一个记录,该记录中的字段将与rooms表中的列相对应。
分享到:
评论

相关推荐

    Oracle PL/SQL中如何使用%TYPE和%ROWTYPE

    Oracle PL/SQL 中的 %TYPE 和 %ROWTYPE 应用详解 Oracle PL/SQL 是一种强大的编程语言,广泛应用于数据库开发中。在 PL/SQL 中,变量的声明和使用是非常重要的。其中,%TYPE 和 %ROWTYPE 是两个非常重要的概念,...

    oracle pl/sql实例精讲student数据库模式数据和表脚本

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库操作能力和Procedural Language的编程结构,用于在Oracle数据库环境中创建复杂的应用程序。在"Oracle PL/SQL实例精讲student数据库模式"中,我们将深入探讨...

    Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发

    《Oracle PL/SQL专家指南-高级PL/SQL解决方案的设计与开发》是一本深入探讨Oracle数据库中的PL/SQL编程的专业书籍。PL/SQL是Oracle数据库特有的编程语言,它结合了SQL的查询能力与过程式编程语言的功能,使得数据库...

    ORACLE PL/SQL

    - 使用%ROWTYPE和%TYPE关键字可以方便地与SQL查询结果交互。 10. **中国水利水电应用**: - 在中国水利水电领域,可能使用Oracle PL/SQL来管理大型水文数据,实现复杂的水利计算,监控水资源,以及确保数据安全性...

    pl/sql学习笔记

    PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库中的过程式编程语言,它结合了SQL查询语句和传统的过程式编程元素,使得在数据库管理中进行复杂逻辑处理成为可能。以下是对PL/SQL的学习笔记...

    Oracle_PL/SQL编程

    在PL/SQL中,可以声明各种类型的变量,包括Oracle数据库支持的基本数据类型(如NUMBER、VARCHAR2等)以及复合数据类型(如%TYPE、%ROWTYPE、RECORD、TABLE)。变量声明使用DECLARE关键字,赋值则通过":"="操作符。...

    绝对好的 oracle pl/sql 编程

    - **5.4 在 PL/SQL 中使用 SQLCODE, SQLERRM** #### 六、存储函数和过程 **6.1 创建函数** - **6.2 创建过程** #### 七、包的创建和应用 **7.1 包的定义** 包是 PL/SQL 中组织和封装代码的一种方式,它由规范...

    oracle/pl/sql编程

    Oracle PL/SQL编程是Oracle数据库管理系统中用于数据库交互和应用程序开发的一种强大语言。它结合了SQL的查询和数据操作能力,以及过程编程语言的控制结构和功能,为开发者提供了更高级别的抽象和灵活性。 PL/SQL的...

    PL/SQL学习教程,附笔记

    PL/SQL,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种结合了SQL语言和过程式编程的编程环境。它扩展了SQL的功能,使得开发人员能够编写复杂的数据库应用程序,处理事务、实现...

    最容易上手的PL/SQL学习教程-有经过测试的丰富案例

    PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库提供的一种过程化语言,它结合了SQL的查询功能和传统的编程语言特性,如变量、条件语句、循环结构等,使得数据库管理与应用开发更为灵活...

    Oracle PL/SQL的大量操作

    这篇博文将深入探讨如何在Oracle数据库中使用PL/SQL进行大规模的数据操作。 首先,PL/SQL中的批量处理是提高性能的关键。当我们需要对成千上万的记录执行相同操作时,一次性提交多条SQL语句而非逐一执行,可以显著...

    Oracle PL SQL专家指南_高级PLSQL解决方案的设计与开发

    Oracle PL/SQL是一种强大的编程语言,它将关系数据库的强大功能与结构化查询语言(SQL)相结合,用于在Oracle数据库环境中创建复杂的应用程序。本指南专为那些希望深入掌握PL/SQL高级特性和最佳实践的开发者设计,...

    PL/SQL存储过程编程

    ### PL/SQL存储过程编程详解 #### 一、Oracle应用编辑方法概览 在Oracle数据库的应用开发中,存在多种编辑方法和技术,它们...无论是从性能还是维护的角度来看,PL/SQL都是Oracle数据库应用开发中不可或缺的一部分。

    pl/sql

    8. **PL/SQL块**:PL/SQL块可以是匿名块或命名块,匿名块通常用于临时的SQL操作,而命名块如存储过程和函数则用于长期使用。 通过这些元素,PL/SQL使得在Oracle数据库环境中编写复杂的业务逻辑成为可能,提高了程序...

    基本PL/SQL编程

    Oracle PL/SQL编程是Oracle数据库系统中的一个关键组成部分,它是一种强大的过程化编程语言,用于在数据库中执行复杂的逻辑和操作。本指南旨在为初学者提供一个基础的PL/SQL编程入门,帮助他们理解并掌握这个强大的...

    PL/SQL程序设计

    PL/SQL程序设计是Oracle数据库系统中的核心编程语言,它为开发者提供了强大的功能,以便高效地操作和管理数据库。PL/SQL集成了SQL查询和控制流语句,使其成为一种全面的、专为数据库交互设计的语言。以下是关于PL/...

    pl_sql基本语法例子.rar_SQL2569_oracle_pl/sql_plsql增删改查

    PL/SQL是Oracle数据库系统中的一个重要组成部分,它是一种结合了SQL与过程编程的语言,用于在Oracle环境中编写存储过程、函数、触发器等数据库对象。本资料主要涵盖了PL/SQL的基本语法以及数据的增删改查操作和视图...

    pl/sql语法详解

    PL/SQL,全称为Procedural ...通过深入学习本“PL/SQL详解”教程,你将能熟练掌握PL/SQL的语法特性,更好地进行Oracle数据库的开发和管理。无论你是初学者还是经验丰富的开发者,这份资料都将为你提供宝贵的指导。

    oracle存储过程、游标、函数、PL/SQL块

    包含oracle存储过程的增、删、查、改 %type、%rowtype的使用 自定义函数 PL/SQL块

Global site tag (gtag.js) - Google Analytics