最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

OraclePL/SQL中如何使用%TYPE和%ROWTYPE

来源:动视网 责编:小采 时间:2020-11-09 10:05:35
文档

OraclePL/SQL中如何使用%TYPE和%ROWTYPE

OraclePL/SQL中如何使用%TYPE和%ROWTYPE:本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。 本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。 1. 使用%TYPE 在许多情况下,PL/SQL变量可以用
推荐度:
导读OraclePL/SQL中如何使用%TYPE和%ROWTYPE:本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。 本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。 1. 使用%TYPE 在许多情况下,PL/SQL变量可以用


本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。

本文章简单的介绍了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记录类型类似于中的结构,是一种复合类型,是用户自定义的。
  记录提供了一种处理独立的但又作为一个整体单元相关的变量的机制。请看:

代码如下
  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表中的列相对应

文档

OraclePL/SQL中如何使用%TYPE和%ROWTYPE

OraclePL/SQL中如何使用%TYPE和%ROWTYPE:本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。 本文章简单的介绍了Oracle PL/SQL中如何使用%TYPE和%ROWTYPE,有需要了解的朋友可以参考一下下。 1. 使用%TYPE 在许多情况下,PL/SQL变量可以用
推荐度:
标签: 使用 oracle type
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top