`
Johnny_GZ
  • 浏览: 179848 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle中%TYPE和%ROWTYPE说明

 
阅读更多
1. 使用%TYPE

在许多情况下,变量应该拥有与表列相同的类型。例如,emp表的name列的类型为VARCHAR2(20),我们可以使用硬编码写法声明一个变量:

DECLARE

       var_Name VARCHAR2(20);

这样可以实现,但是如果name列的定义改变了,比如将name字段的类型变为VARCHAR2(50),那就会导致所有使用这个变量的PL/SQL代码都必须进行修改。而且如果你有很多的PL/SQL代码,这种处理可能是灰常繁琐和容易出错的,这时,你可以使用”%TYPE”属性这种类型硬性编码,类似在java开发中,我们习惯将一些常量进行固定的定义,比如public static final String arg = 'Your Name';

例如:

DECLARE

       var_name emp.name%TYPE;

   通过使用%TYPE,var_name变量将同emp表的name列的类型绑定,这样每次匿名块、命名块或者存储过程运行该语句块以及编译存储对象(过程、函数、包、对象类和触发器)时都会确定该对象类型,即使表定义修改,这里也可以一样使用。

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



2. 使用%ROWTYPE


替代:
PL/SQL记录类型是用户自定义的,记录提供了一种处理独立又作为一个整体单元相关的变量的机制,类似在java开发中定义一个model类。

DECLARE

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

       TYPE t_empRecord IS RECORD(

              var_empId NUMBER(5),

              var_name VARCHAR2(20));
       /*Declare a variable of this type.*/

       v_empInfo t_empRecord;


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

SELECT emp_id,name

into v_empInfo
from emp where emp_id=32;


%ROWTYPE

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

例如:

DECLARE

       var_emp emp%ROWTYPE;

将定义一个记录,该记录中的字段将与emp表中的列相对应。

游标的一行:

  create or replace procedure PRO_TEMPLATE as
NEED_DO_FOR_ZL INTEGER;
CURRENT_MAX_ID MEMO_TEMPLET.TEMPLET_ID%TYPE;
CURSOR TEMPLATE_CUR IS SELECT TEMPLET_NAME, TEMPLET_CONTENT FROM SYS_TEMPLET;
TEM_INSTANCE TEMPLATE_CUR%ROWTYPE;
begin
null;
end;

分享到:
评论

相关推荐

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

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

    Oracle_plsql基本语法笔记.txt

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

    PLSQL编程03

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

    Oracle游标大全

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

    oracle进阶实例代码

    总结来说,通过以上示例可以看出,在Oracle中使用存储过程和函数可以极大地提高代码的复用性和可维护性。同时,合理地利用游标也能有效提升数据处理的灵活性和效率。这些知识点对于学习和掌握Oracle数据库的高级应用...

    Oracle PL SQL经典练习题1.docx

    这个程序块的关键是使用%rowtype 属性声明变量,然后使用select into语句将数据从emp表中fetch 到变量中,然后使用if-elsif语句来判断雇员的职位,并执行相应的加薪处理。 这些练习题涵盖了PL/SQL程序块的多方面...

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

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

    Oracle-data-type.rar_oracle

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

    Oracle 游标使用大

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

    oracle文档

    在Oracle的文档中,主要介绍了关于PL/SQL(Procedural Language for SQL)的一些关键概念和技术要点,特别是针对复合数据类型、显式游标、异常处理以及过程、函数与包的创建等方面进行了深入探讨。这些知识点对于...

    oracle PL-SQL 学习笔记1

    以上内容涵盖了Oracle PL-SQL中的一些基础且重要的知识点,包括变量声明与赋值、输出设置、表操作、使用`%TYPE`和`%ROWTYPE`、记录和集合的使用。通过掌握这些核心概念,开发者可以在Oracle数据库环境中更高效地编写...

    Oracle中EXECUTE IMMEDIATE用法

    随着版本的演进,如在Oracle Forms 6i及以后的版本中,对`EXECUTE IMMEDIATE`的支持变得更加成熟和稳定。 ### 实际应用示例 1. **设置角色**: ```sql BEGIN EXECUTE IMMEDIATE 'SET ROLE ALL'; END; ``` 这...

    Oracle游标使用大全

    本文档旨在提供一个全面的指南,帮助初学者理解和掌握如何在Oracle PL/SQL环境中有效地使用游标。 #### 二、基本概念 **1. SELECT INTO 语句** - **语法**: ```sql SELECT [DISTINCT | ALL] { * | column [, ...

    Oracle中Using用法

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

    Oracle plsql 基础ppt

    在PL/SQL中,`%TYPE`和`%ROWTYPE`是两个重要的特性。`%TYPE`用于声明变量与已存在表列的数据类型相同,如`v_ename emp.ename%type;`。`%ROWTYPE`则创建一个与指定表行结构完全匹配的记录变量,如`v_emp_rec emp%...

    Oracle存储过程 知识点总结

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

    ORACLE数组使用方法

    declare type v_table is table of t_user%rowtype index by binary_integer; my_table v_table; 在上面的代码中,我们首先声明了一个多维数组类型 `v_table`,它可以存储多个记录。然后,我们创建了一个 `v_table`...

    oracle 迅速查询和更新大数据

    本文将基于提供的示例代码,深入探讨Oracle中用于快速查询和更新大数据的一些关键技术点。 #### 一、批量处理技术:`BULK COLLECT` 批量处理是提高数据处理效率的重要手段之一。通过一次性获取多条记录,可以显著...

Global site tag (gtag.js) - Google Analytics