Oracle的%type和%rowtype
2024-10-18 10:49:43
1 %TYPE说明
为了使一个变量的数据类型与另一个已经定义了的变量(尤其是表的某一列)的数据类型相一致,Oracle提供 了%TYPE定义方式。当被参照的那个变量的数据类型改变了之后,这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程 序了。当不能确切地知道被参照的那个变量的数据类型时,就只能采用这种方法定义变量的数据类型。
2 %ROWTYPE说明
如果一个表有较多的列,使用%ROWTYPE来定义一个表示表中一行记录的变量,比分别使用%TYPE来定义表示表中各个列的变量要简洁得多,并且不容易遗漏、出错。这样会增加程序的可维护性。
为了使一个变量的数据类型与一个表中记录的各个列的数据类型相对应、一致,Oracle提供%ROWTYPE定义方式。当表的某些列的数据类型改变了之后, 这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程序了。当不能确切地知道被参照的那个表的结构及其数据类型时,就只能采用这种方法定义变量的数据类型。
一行记录可以保存从一个表或游标中查询到的整个数据行的各列数据。一行记录的各个列与表中一行的各个列有相同的名称和数据类型。
例如: v_info emp%ROWTYPE; //该类型为emp表中的一行数据类型
v_cinfo c_emp%ROWTYPE //该类型为游标c_emp中的一行数据类型
下面是一个例子:
Oracle代码:
例如: v_info emp%ROWTYPE; //该类型为emp表中的一行数据类型 v_cinfo c_emp%ROWTYPE //该类型为游标c_emp中的一行数据类型 下面是一个例子: Oracle代码:
declare
r_emp emp%ROWTYPE; --该类型为emp表中一行的类型
cursor c_emp is SELECT * FROM emp ;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp into r_emp; --游标中查询出来的一行into进定义的变量r_emp中
EXIT WHEN c_emp%NOTFOUND;
dbms_output.put_line('员工姓名:' || r_emp.ename);
END LOOP;
CLOSE c_emp;
END;
最新文章
- Android调用webservice的例子
- jquery 单击和双击事件冲突解决方案
- 05 Apache Solr: 管理员界面(Admin UI)
- background-attachment 定义背景图片随滚动轴的移动方式
- 我的工具箱之FileZilla_3.11.0.1_win32-setup.1432524055
- RESTful API 简书
- truncate、drop、delete区别
- 学习笔记7_Java_day11_JSP原理(5)
- linux下snprintf和sprinf很少被提及的区别
- Tab Bar Controller和Navigation Controller混合使用详细教程
- Linux系统(二)软件的安装与卸载
- bzoj1487 [HNOI2009]无归岛
- 解决oracle用户锁定
- 》》3D轮播
- C语言实现字符串中(10进制和16进制)转成十进制数
- 【学习笔记】tensorflow图片读取
- WEB UI基础八:链接跳转到标准的工单界面
- Python操作MySql --Python3
- vm 虚拟机选择启动项
- idea 安装lombok 插件过程
热门文章
- Codeforces 439 A. Devu, the Singer and Churu, the Joker
- Java笔记(九)……面向对象I
- UVa10635 - Prince and Princess(LCS转LIS)
- Import the Add Email and Post Configuration to the SiteMap managed solution -Dynamices CRM
- 图的强连通&;双连通
- Windows Service中使用Threading.Timer需注意回收
- nyoj 1022 最少步数【优先队列+广搜】
- 最火的Android开源项目(二)
- Log4E
- JavaScript实现竖直文本滚动