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

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表中的列相对应。

http://www.cnblogs.com/kingjiong/archive/2009/02/19/1393837.html

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql的%rowtype_Oracle %TYPE 和 %ROWTYPE 使用相关推荐

  1. %rowtype mysql_Oracle %type和%rowtype小实例

    //%type //如果声明的变量是直接映射到数据库的某一列上,那么就可以使用%type关键字将变量 //锚定到这个列上.这样做有什么 Oracle %type和%rowtype小实例 [日期:201 ...

  2. 【Oracle】record varray (associative array 关联数组) table (nested table type 嵌套表类型)和%type、%rowtype的使用详解

    官方文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnpls/plsql-data-types.html#GU ...

  3. mysql %type_mysql 存储过程 %type

    MYSQL修改存储过程的访问权限 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/inforstack/article/details/80547478 ...

  4. mysql 5.5 type=innodb_mysql5.5.23TYPE=InnoDB语法错误_MySQL

    bitsCN.com mysql5.5.23 TYPE=InnoDB语法错误 CREATE TABLE IF NOT EXISTS `ad_aXXXX_test_delete` ( `payment` ...

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

    1. 使用%TYPE 在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据.在这种情况下,变量应该拥有与表列相同的类型.例如,students表的first_name列的类型为VARCHAR2 ...

  6. mysql unsupported data type._mysql unsupported operand type(s) for %: 'tuple' and 'tuple'

    环境:ubuntu14.04,python2.7 这篇文章只是为了记录我碰到的一个mysql相关的小问题 看了下代码,就是爬取bili用户信息后保存到mysql中.因为想之后方便提取mysql里的信息 ...

  7. mysql 查询优化 索引 type级别

    mysql查询速度优化 这是type级别 越左边 查询速度越快 system>const>eq_ref>ref>range>index>ALL 怎么样才能让type ...

  8. mysql unsupported data type._数据查询Unsupported command错误

    错误如下: Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionExc ...

  9. mysql %rowtype_存储过程之ROWTYPE 使用事例

    CREATE OR REPLACE PROCEDURE "DYLTWZDSJ_CP_BA" (YWID IN VARCHAR2, XKZBH IN VARCHAR2, FLAG O ...

最新文章

  1. 类继承中的构造函数与析构函数
  2. linux查看tuxedo版本的命令,Tuxedo tmadmin命令
  3. 让自己的程序支持livewriter
  4. Express.js 3.0 发布,Node.js 的高性能封装
  5. python判断正确错误_第16天:Python 错误和异常
  6. python 类中方法的动态特性
  7. 更高效的利用Jupyter+pandas进行数据分析,6种常用数据格式效率对比!
  8. 关于mysql的cpu占用高的问题
  9. java servlet spring_spring与tomcat 对应关系,servlet各版本写法
  10. 数据结构与算法分析(四)——C++实现栈
  11. 110+优秀作品、20+热门领域曝光, 高通如何玩转“AI 的夏天”!
  12. OA+CRM+ERP
  13. 【数学建模】历年全国大学生数学建模竞赛题目+定位分析
  14. 微信小程序图片转换成文字_涨知识!这个微信小程序,能将纸上文字转换成电子版...
  15. TortoiseGit安装和使用的图文教程
  16. JavaScript验证 IP/域名格式
  17. 先少谈点人工智能好吗?
  18. 全球主要语言缩写对照
  19. JS判断字符是否为数字类型
  20. microtime() 函数

热门文章

  1. VUE 响应式原理源码:带你一步精通 VUE | 原力计划
  2. GitHub 热点速览:刷 LeetCode 的正确姿势!
  3. ​苹果WWDC20确定6月22日线上举办;任天堂遭史上最大规模黑客攻击 ;Inkscape 1.0 发布 | 极客头条...
  4. 拜托,别再问我什么是 B+ 树了
  5. 一网打尽!每个程序猿都该了解的黑客技术大汇总
  6. 最通俗易懂的 Java 10 新特性讲解 | 原力计划
  7. 支付宝解释 2019 年账单总额较高;腾讯 QQ 回应新功能可显示对方实时电量;Python 2.7 结束支持 | 极客头条...
  8. “弃用 Google AMP!”
  9. 全国程序员工资最新统计,区块链工程师比算法工资高!
  10. 运营商回应 5G 商用放号推迟;iPhone 或推出渐变色;GoLand 2019.2.1 发布 | 极客头条...