oracle 用函数查询怎么直接返回一个表
2016-05-21 12:23
471 查看
返回cursor的话,那么必须要cursor的手段来处理,不能作为查询语句的目的表。
如果需要在函数返回一个可以供查询语句使用的结果集,那么该函数的返回类型应该定义为一个索引表类型(一个table类型),然后在查询语句中使用table函数将函数返回的索引表转换成查询可以使用的目的表。示例如下:
1. 创建返回索引表所需的类型
2. 创建函数
3. 调用函数
如果需要在函数返回一个可以供查询语句使用的结果集,那么该函数的返回类型应该定义为一个索引表类型(一个table类型),然后在查询语句中使用table函数将函数返回的索引表转换成查询可以使用的目的表。示例如下:
1. 创建返回索引表所需的类型
create or replace type type_rec is object (idx integer, user_name varchar2(50)); create or replace type type_tb is table of type_rec;
2. 创建函数
create or replace function fn_return_tb return type_tb is o_tb type_tb := type_tb(); i number := 0; begin for v_rec in (select 1 as idx, 'Andy' as user_name from dual union select 2, 'Jack' from dual union select 3, 'Paul' from dual) loop o_tb.extend; i := i + 1; o_tb(i) := type_rec (v_rec.idx, v_rec.user_name); end loop; return o_tb; end fn_return_tb;
3. 调用函数
select s.* from table(fn_return_tb()) s;
相关文章推荐
- Oracle数据库——半期测验
- Oracle 解锁用户
- Oracle数据库——SQL高级查询
- Oracle数据库——SQL基本查询
- Oracle数据库中的级联查询、级联删除、级联更新操作教程
- Oracle数据库中创建自增主键的实例教程
- Oracle 存储过程学习
- Java并发教程(Oracle官方资料)
- BroadleafCommerce使用Oracle
- 如何将oracle数据1000行合并成一行
- Oracle的update语句优化研究 批量更新
- oracle 数据库表结构
- oracle sql学习五
- Oracle PL/SQL入门学习
- 图解Oracle 12c 触发器实例
- 论ORACLE 9i 的体系图为什么这么金典
- 两个oracle之间建立db link
- 160519、Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法
- 在MAC上安装Oracle JDK
- Oracle sql & 用法