oracle数据库学习之路(三)-----%TYPE和%ROWTYPE
2015-06-11 15:17
495 查看
1. %TYPE的简单介绍
定义一个变量,其数据类型与已经定义的某个数据变量(尤其是表的某一列)的数据类型相一致,这时可以使用%TYPE。使用%TYPE特性的优点在于:
所引用的数据库列的数据类型可以不必知道;
所引用的数据库列的数据类型可以实时改变,容易保持一致,也不用修改PL/SQL程序。
这里仍然写两个%TYPE在记录类型中使用的例子
例子一
DECLARE --使用%TYPE来找到一列的类型 TYPE t_record is RECORD( t_no T_Employee.Fnumber%TYPE, t_name T_Employee.Fname%TYPE, t_age T_Employee.Fage%TYPE, t_salary T_Employee.Fsalary%TYPE ); -- 声明接收数据的变量 t_record1 t_record; BEGIN SELECT Fnumber,Fname,Fage,Fsalary into t_record1 from T_Employee where Fnumber ='SALES002'; Dbms_Output.put_line (t_record1.t_no||'\'||t_record1.t_name||'\'||TO_CHAR(t_record1.t_age)||'\'||TO_CHAR(t_record1.t_salary)); END;
例子二
这个例子中的where条件使用一个预先定义的变量来确定
DECLARE v_empno emp.empno%TYPE :=&no; Type t_record is record ( v_name emp.ename%TYPE, v_sal emp.sal%TYPE, v_date emp.hiredate%TYPE); Rec t_record; BEGIN SELECT ename, sal, hiredate INTO Rec FROM emp WHERE empno=v_empno; DBMS_OUTPUT.PUT_LINE(Rec.v_name||'---'||Rec.v_sal||'--'||Rec.v_date); END;
使用%ROWTYPE
**PL/SQL 提供%ROWTYPE操作符, 返回一个记录类型, 其数据类型和数据库表的数据结构相一致。使用%ROWTYPE特性的优点在于:
l 所引用的数据库中列的个数和数据类型可以不必知道;
l 所引用的数据库中列的个数和数据类型可以实时改变,容易保持一致,也不用修改PL/SQL程序。 **
一个例子
DECLARE v_empno emp.empno%TYPE :=&no; rec emp%ROWTYPE; BEGIN SELECT * INTO rec FROM emp WHERE empno=v_empno; DBMS_OUTPUT.PUT_LINE('姓名:'||rec.ename||'工资:'||rec.sal||'工作时间:'||rec.hiredate); END;
相关文章推荐
- oracle的分页查询碰到的一个小问题
- 讨论oracle在rowid和rownum
- 关于Oracle 大数据排序问题的优化之一
- oracle递归数结构数据
- 关于oracle LISTAGG函数的用法(以某个字段相同情况下,将对应的另一个字段连接起来)
- oracle 中oci 关于null 的处理方法
- oracle数据库
- Oracle插入或修改 报ORA-01704: 文字字符串太长
- oracle学习之路(二)------数组类型/记录类型的使用
- Oracle数据库之序列
- Oracle存储过程 输出参数赋值异常:“Oracle.DataAccess.Types.OracleString”的类型初始值设定项引发异常。
- Sqoop1.4.4 实现将 Oracle10g 中的增量数据导入
- sybase与oracle的区别
- Oracle默认密码
- oracle之procedure的基础使用
- Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
- Oracle存储过程基本语法
- Oracle Buffer Cache初步诊断调优
- oracle导入dmp文件命令
- MySQL转换Oracle的注意事项