`

Oracle开发专题之:%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经典练习题1.docx

    Oracle PL/SQL经典练习题 ...这些练习题涵盖了PL/SQL程序块的多方面知识点,包括变量声明、select into语句、dbms_output.put_line语句、异常处理、%type 属性、%rowtype 属性、update语句、if-elsif语句等。

    oracle实验7-plsql编程基础.doc

    本实验旨在帮助学生掌握PL/SQL的基本概念和语法,包括变量的使用、%TYPE和%ROWTYPE特性,以及记录变量的操作。以下是对实验内容的详细解释: 一、PL/SQL程序块结构 PL/SQL程序块由声明部分(DECLARE)、执行部分...

    Oracle开发面试题参照.pdf

    3. PL/SQL 编程基础:文档提到了PL/SQL的使用,例如使用`%rowtype`和`%type`来声明变量,以及PL/SQL程序的基本结构,如异常处理(`exception`)、循环(`begin...end`结构)、输出(`dbms_output.put_line`)等。...

    oracle Database 11g :PL/SQL

    Oracle Database 11g 是 Oracle 公司推出的一款强大的数据库管理系统,它提供了多种新功能和改进来提高性能、可靠性和安全性。其中 PL/SQL(Procedural Language for SQL)是一种专门用于增强 SQL 功能的过程化语言...

    Oracle游标大全

    ### Oracle游标详解 #### 一、概述 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集。...此外,掌握%TYPE、%ROWTYPE以及游标属性等高级特性,将进一步增强应用程序的功能性和灵活性。

    Oracle-data-type.rar_oracle

    Oracle数据库是世界上最流行的关系型数据库管理系统之一,其强大的功能和高效的数据处理能力使其在企业级应用中占据主导地位。在Oracle数据库中,数据类型扮演着至关重要的角色,它定义了可以存储在表列中的数据类型...

    PLSQL编程03

    总结来说,理解并熟练运用PL/SQL中的自定义复合变量、`%TYPE`和`%ROWTYPE`是提升Oracle数据库编程能力的关键步骤。通过它们,我们可以更加高效地管理数据,编写出更加灵活和健壮的PL/SQL程序。在实际项目中,这些...

    Oracle游标使用大全

    ### Oracle游标使用大全 #### 一、概述 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集中的数据。游标允许程序逐行处理数据,这在...熟练掌握这些技术将大大提高您在Oracle数据库开发中的效率和质量。

    Oracle实验五.docx

    Oracle实验五主要关注PL/SQL编程,这是一种在Oracle数据库中使用的结构化查询语言...在实际工作中,PL/SQL编程能力能够帮助数据库管理员和开发人员高效地实现复杂业务逻辑,优化数据处理,并确保数据的正确性和一致性。

    Oracle---PL-SQL经典练习题1.doc

    在Oracle数据库系统中,PL/SQL(Procedural Language for SQL)是一种过程化的编程语言,它结合了SQL的强大功能与传统的过程化编程语言的功能,使得开发复杂的数据库应用程序变得更为简单高效。通过实践练习,可以更...

    oracle plsql基本语法

    PL/SQL (Procedural Language for SQL) 是一种专门为 Oracle 数据库设计的过程化编程语言,它结合了 SQL 的强大功能和过程化编程语言的特点,使得开发人员能够编写更复杂、更高效的数据库应用程序。PL/SQL 支持变量...

    Oracle 游标使用大

    此外,我们还探讨了%TYPE和%ROWTYPE属性的用法,这有助于更灵活地处理Oracle数据库中的数据类型。 总之,熟练掌握Oracle游标及其相关属性的使用对于提高数据库应用程序的效率至关重要。希望本文能够为正在学习...

    GP开发文档Oracle开发文档

    ### GP与Oracle开发规范及语法差异 #### 一、GP开发规范 **1.1 对象数管控** - **数量限制**: GP系统建议严格控制数据库对象的数量,包括表、视图、索引、函数等,数量应保持在2-3万个以内以确保最佳性能表现。...

    Oracle数据库笔记大全

    在实际操作中,Oracle数据库的管理和开发涉及大量细节和技巧,如性能优化、备份恢复、安全设置等。理解这些基本概念和操作是成为Oracle数据库管理员或开发人员的基础。通过不断学习和实践,可以更好地掌握Oracle...

    Oracle存储过程 知识点总结

    Oracle存储过程是数据库管理系统Oracle中的一个重要特性,它允许程序员将一系列SQL语句和控制结构打包在一起,形成一个可重用的单元,以提高数据库操作的效率和便捷性。以下是对Oracle存储过程的一些关键知识点的...

    Oracle 开发DBA SQL编写规范

    ### Oracle开发DBA SQL编写规范 #### 1. 引言 本文档旨在为Oracle数据库开发者提供一套标准化的SQL及PL/SQL编写指南,通过规范化SQL及PL/SQL的编写方式,提高代码的可读性、可维护性和执行效率。本规范适用于所有...

    oracle关于游标的相关文档

    Oracle中的游标是PL/SQL编程中的重要概念,主要用于处理SQL查询返回的多行结果集。游标允许程序逐行处理结果集,提供了...在实际开发中,根据需求选择合适的游标类型和使用方式,可以有效地管理和操作数据库中的数据。

    oracle进阶实例代码

    根据提供的标题、描述、标签及部分内容,我们可以提炼出Oracle数据库中的几个重要的知识点,这些知识点主要集中在存储过程(Stored Procedure)与函数(Function)的创建与使用上,同时也涉及到了游标(Cursor)的...

Global site tag (gtag.js) - Google Analytics