查询返回数组的问题!

itfly 2005-01-19 12:28:44
我想建立一个函数
需要写
select * from tablea ;
然后把查询结果存到一个数组,再然后循环遍历这个数组,进行运算,并得到最后的一个值!

这个函数如何写,关键的地方我是不清楚如何把结果存到一个数组!
...全文
154 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmgowin 2005-01-19
  • 打赏
  • 举报
回复
for example:
16:27:03 SQL> desc t1;
名称 空? 类型
----------------------------------------- -------- ----------------------------

A NUMBER(38)

16:27:19 SQL> select * from t1;
1
2
3

已用时间: 00: 00: 00.16
16:27:22 SQL> create or replace procedure tes as
16:27:26 2 type refcursor is ref cursor;
16:27:26 3 i integer:=1;
16:27:26 4 tp_a integer;
16:27:26 5 cur refcursor;
16:27:26 6 type arra is array(10) of integer;
16:27:26 7 arr1 arra:=arra();
16:27:26 8 begin
16:27:26 9 open cur for select a from t1;
16:27:26 10 loop
16:27:26 11 fetch cur into tp_a;
16:27:26 12 exit when cur%notfound;
16:27:26 13 arr1.extend;
16:27:26 14 arr1(i):=tp_a;
16:27:26 15 dbms_output.put_line(arr1(i));
16:27:26 16 i:=i+1;
16:27:26 17 end loop;
16:27:26 18 close cur;
16:27:26 19 end;
16:27:26 20 /

过程已创建。

已用时间: 00: 00: 00.32
16:27:26 SQL>
16:27:26 SQL> exec tes
1
2
3

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.15
yangtom 2005-01-19
  • 打赏
  • 举报
回复
我感觉你的数组功能,用游标一样可以的。
如 chanet(牧师) 所说的,你可以用些中间变量存储一些结果,应该可以满足了吧
itfly 2005-01-19
  • 打赏
  • 举报
回复
关键我要对那些东西进行运算,这个好象没有!
chanet 2005-01-19
  • 打赏
  • 举报
回复
用游标一样可以做到.

SQL> DECLARE
2 TYPE refCousor IS REF CURSOR;
3 cur_sal refCousor;
4 Type_job emp.job%TYPE;
5 BEGIN
6 OPEN cur_sal FOR SELECT DISTINCT job FROM emp WHERE sal > 2000;
7 LOOP
8 FETCH cur_sal INTO Type_job;
9 EXIT WHEN cur_sal%NOTFOUND;
10 DBMS_OUTPUT.PUT_LINE('JOB is:'||Type_job);
11 END LOOP;
12 CLOSE cur_sal;
13 END;
14 /
JOB is:ANALYST
JOB is:MANAGER
JOB is:PRESIDENT

PL/SQL 过程已成功完成。

17,086

社区成员

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

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