oracle function 返回数据集如何存储,并能访问某一行的某一列值?

sunyuchuan86 2011-05-24 05:46:39
如标题,有一个function 返回类型为包含行号的临时表。现在我如何按行号和列名访问这个临时表的某一行的某个列的值
...全文
171 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangren 2011-05-24
  • 打赏
  • 举报
回复
可以使用集合(嵌套表、可变数组),但是集合必须是全局的,在SQL环境使用create type方式建立。
也可以使用oracle的临时表方式。
yejihui9527 2011-05-24
  • 打赏
  • 举报
回复
百度 动态SQL。。
304的的哥 2011-05-24
  • 打赏
  • 举报
回复

--使用游标可以返回数据集合
--你也可以使用联合数组,返回表中批量的数据:
SQL> set serveroutput on;
SQL> declare
2 type emp_type is table of varchar2(20);
3 v_ename emp_type;
4 begin
5 select ename bulk collect into v_ename from emp order by sal;
6 for i in 1..v_ename.count loop
7 if i=1 then
8 dbms_output.put_line('首条数据:'||v_ename(i));
9 end if;
10 if i>1 then
11 dbms_output.put_line('本条数据:'||v_ename(i)||
12 ' 上一条数据:'||v_ename(i-1));
13 end if;
14 end loop;
15 end;
16 /

首条数据:SMITH
本条数据:JAMES 上一条数据:SMITH
本条数据:ADAMS 上一条数据:JAMES
本条数据:WARD 上一条数据:ADAMS
本条数据:MARTIN 上一条数据:WARD
本条数据:MILLER 上一条数据:MARTIN
本条数据:TURNER 上一条数据:MILLER
本条数据:ALLEN 上一条数据:TURNER
本条数据:CLARK 上一条数据:ALLEN
本条数据:BLAKE 上一条数据:CLARK
本条数据:JONES 上一条数据:BLAKE
本条数据:FORD 上一条数据:JONES
本条数据:SCOTT 上一条数据:FORD
本条数据:KING 上一条数据:SCOTT

PL/SQL procedure successfully completed

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧