`

[转] oracle中的 %type %rowtype 用法

阅读更多

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更加灵活,更加适应于对数据库定义的更新。
例如:
declare
v_id hr.jobs.job_id%type;
v_title hr.jobs.job_title%type;
begin
 select job_id,job_title into v_id,v_title
 from hr.jobs
 where job_id ='&aa';
 dbms_output.put_line('序号'||v_id );
 dbms_output.put_line('名称'||v_title);
end;
执行,我们输入aa变量的值:AD_VP
输出结果为:
序号AD_VP
名称Administration Vice President
2 使用%ROWTYPE
在PL/SQL中将一个记录声明为具有相同类型的数据库行的作法是很常见的。PL/SQL提供了%ROWTYPE运算符,使得这样的操作更为方便。
例如:
DECLARE
       v_StudentRecord students%ROWTYPE;
将定义一个记录,该记录中的字段将与students表中的列相对应。
例如:
declare
v_jobs hr.jobs%rowtype;
begin
 select * into v_jobs
 from hr.jobs
 where job_id ='&aa';
 dbms_output.put_line('序号'||v_jobs.job_id );
 dbms_output.put_line('名称'||v_jobs.job_title);
end;
执行,我们输入aa变量的值:AD_VP
输出结果为:
序号AD_VP
名称Administration Vice President
作者:tshfang
来源: 泥胚文章写作 http://www.nipei.com 原文地址: http://www.nipei.com/article/2384

 

转自:http://blog.sina.com.cn/s/blog_5178d9680100amuw.html

分享到:
评论

相关推荐

    ORACLE数组使用方法

    ORACLE 数组使用方法 Oracle 数组是一种复杂的数据类型,可以存储多个元素,数组可以分为固定数组和可变数组两种类型。在 Oracle 中,数组可以用来存储大量的数据,并且可以通过索引来访问数组中的元素。 固定数组...

    Oracle游标大全

    本文将详细介绍Oracle中的游标概念、分类以及如何在PL/SQL中使用游标。 #### 二、游标的基本概念 游标是数据库中一种特殊的数据结构,它提供了从数据库中检索数据的方法,并允许程序逐行处理这些数据。游标可以在...

    Oracle中Using用法

    Oracle 中 Using 用法 Oracle 动态 SQL 介绍以及 Using 用法示例 在 Oracle 中,使用 Using 语句可以实现动态 SQL 的绑定变量,提高 SQL 语句的灵活性和安全性。本文将对 Oracle 中 Using 用法进行详细的介绍,并...

    Oracle_plsql基本语法笔记.txt

    %type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 标题 存储过程及函数 procedure 的建立...

    Oracle中EXECUTE IMMEDIATE用法

    在Oracle数据库中,`EXECUTE IMMEDIATE`是一个非常强大的特性,允许在运行时动态执行SQL语句或PL/SQL块。这一功能自Oracle 8i版本的DBMS_SQL包引入以来,极大地增强了PL/SQL的灵活性和动态性。通过`EXECUTE ...

    Oracle 游标使用大

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

    快速掌握Oracle数据库游标的使用方法

    Oracle 数据库游标的使用方法 Oracle 数据库游标是指在查询返回结果超过一行时,需要使用的显式游标。用户不能使用 select into 语句,而是需要使用游标来处理多行查询结果。在 PL/SQL 中,隐式游标会在查询开始时...

    Oracle存储过程 知识点总结

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

    ORACLE到DB2应用移植方法探讨.pdf

    Oracle 特色的数据和功能 (ROWID,ROWNumber,%TYPE,%ROWTYPE) 以及集合类型 (联合数组,嵌套表,varrays) DB2 不支持。 四、移植方法探讨 方法 1:对 ORACLE 和 DB2 中各应用对象进行分析,找出对照的规则,设计...

    ORACLE PLSQL优化PPT课件.pptx

    使用%type和%rowtype可以提高参数传递的效率,同时,适当使用数组可以在处理大量数据时显著提升性能。 最后,需要注意的是,PL/SQL不仅用于处理复杂的业务逻辑,还应保证与应用程序的解耦,以维护SQL语句的一致性和...

    PL/SQL 基础.doc

    1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和数据库打交道的方法,和Pro*C很相似,更底层,很少用 只适合ORACLE; 4) SQLJ: 很新的一种用...

    Oracle 游标使用大全.txt

    ### Oracle游标使用详解 #### 一、Oracle游标简介 在Oracle数据库中,游标是一种重要的机制,用于处理查询结果集。它允许程序逐一访问查询返回...正确理解和掌握游标的使用方法对于编写高质量的PL/SQL程序至关重要。

    Oracle_PL_SQL经典练习题.docx

    在这个文档中,我们看到一系列的练习题,这些题目旨在帮助学习者掌握PL/SQL的基础知识,包括变量声明、数据类型、异常处理、查询语句、以及%type和%rowtype属性的使用。以下是针对每个练习题的详细解释: 1. 第一个...

    Oracle数据库笔记大全

    - **PL/SQL数据类型**: 包括标量类型(如NUMBER、VARCHAR2、DATE)、LOB类型(BLOB、CLOB)和属性类型(如%TYPE、%ROWTYPE)。 4. **约束**: - **域完整性约束**: 对单个属性的取值范围和类型进行限制。 - **...

    oracle文档

    通过深入研究文档中提供的内容,我们可以更好地理解如何使用复合数据类型来高效地处理数据,如何利用显式游标和异常处理来增强程序的健壮性,以及如何通过创建过程、函数和包来构建结构化的应用程序。这些技术是开发...

    Oracle中树的操作

    为了展示树形结构,可以使用Oracle中的`START WITH`和`CONNECT BY PRIOR`语句。下面的查询将从根节点(名称为'ROOT')开始,递归地显示所有子节点。 ```sql SELECT ST.* FROM SCOTT_TREE ST START WITH ST.NAME = '...

    oracle(ppt)

    Oracle是世界上最广泛使用的数据库管理系统之一,它提供了丰富的编程语言支持,其中包括PL/SQL。这篇精辟的ORACLE教程PPT主要介绍了PL/SQL编程的基础知识,让我们深入了解一下这个强大的数据库编程语言。 PL/SQL...

Global site tag (gtag.js) - Google Analytics