oracle type is table of rowtype和rowtype的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle type is table of rowtype和rowtype的区别相关的知识,希望对你有一定的参考价值。
参考技术A 好像rowtype就是相当于一个表的一行的属性,你给这个变量赋值的时候一次就只会赋值一行,当然这行可以有很多字段;加上table就是想当是一个表,就像数组一样,是很多行rowtype。
不知道说的明白没有,rowtype就像一个表的一行,那么table of rowtype就像一个表。本回答被提问者和网友采纳
Oracle中IS TABLE OF的使用
IS TABLE OF :指定是一个集合的表的数组类型,简单的来说就是一个可以存储一列多行的数据类型。
INDEX BY BINARY_INTEGER:指索引组织类型
BULK COLLECT :指是一个成批聚合类型,简单的来说 , 它可以存储一个多行多列存储类型,采用BULK COLLECT可以将查询结果一次性地加载到集合中。
【实例】在SCOTT模式下,使用IS TABLE OF获取所有员工的姓名,职务,工资信息。
declare type type_ename is table of emp.ename%type; type type_job is table of emp.job%type; type type_sal is table of emp.sal%type; var_ename type_ename:=type_ename(); var_job type_job:=type_job(); var_sal type_sal:=type_sal(); begin select ename,job,sal bulk collect into var_ename,var_job,var_sal from emp; /*输出雇员信息*/ for v_index in var_ename.first .. var_ename.last loop dbms_output.put_line(‘雇员名称:‘||var_ename(v_index)||‘ 职务:‘||var_job(v_index)||‘ 工资:‘||var_sal(v_index)); end loop; end;
【实例】在SCOTT模式下,使用IS TABLE OF获取所有员工的所有信息。
declare type emp_table_type is table of emp%rowtype index by binary_integer; var_emp_table emp_table_type; begin select * bulk collect into var_emp_table from emp; /*输出雇员信息*/ for i in 1..var_emp_table.COUNT loop dbms_output.put_line(‘雇员名称:‘||var_emp_table(i).ename||‘ 职务:‘||var_emp_table(i).job||‘ 工资:‘||var_emp_table(i).sal); end loop; end;
以上是关于oracle type is table of rowtype和rowtype的区别的主要内容,如果未能解决你的问题,请参考以下文章
[Err] 1168 - Unable to open underlying table which is differently defined or of non-MyISAM type or d
Argument data type text is invalid for argument 1 of replace function
RF之TypeError: Object of type 'bytes' is not JSON serializable
No enclosing instance of type XXX is accessible
TypeScript语法错误:Argument of type ‘string‘ is not assignable to parameter of type ‘Element‘. 解决方法