一个oracle函数参数传递的问题

sunht 2005-07-29 09:33:19
我有一族二维坐标数值(x1,y1).....(xn,yn)
n的数量不确定,不过能够确定n的上限数值,定义怎么样的类型才能最方便的将这组
坐标数值作为参数传入到函数中去,并传出一组(ALLX,ALLY)的坐标?

在线等啊,有了答案马上结贴
...全文
234 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
szJetricy 2005-07-29
  • 打赏
  • 举报
回复
嵌套一下,两种办法。
1。Index-Table
2. Index-by Table of Records

DECLARE
TYPE hrc_org_rec IS RECORD
(hrc_org_id NUMBER,
hrc_descr VARCHAR2(20),
org_short_name VARCHAR2(30));
TYPE hrc_org_tab IS TABLE OF hrc_org_rec INDEX BY BINARY_INTEGER;
v_example_tab hrc_org_tab;
CURSOR csr_hrc_org IS
SELECT hrc_org_seq.nextval hrc_org_id, h.hrc_descr, o.org_short_name
FROM org_tab o, hrc_tab h
WHERE o.hrc_code = h.hrc_code
AND h.hrc_code = 1;
i BINARY_INTEGER := 1;
BEGIN
FOR idx IN csr_hrc_org LOOP
v_example_tab(i).hrc_org_id := idx.hrc_org_id;
v_example_tab(i).hrc_descr := idx.hrc_descr;
v_example_tab(i).org_short_name := idx.org_short_name;
i := i + 1;
END LOOP;
dbms_output.put_line('An example output: ');
dbms_output.new_line;
FOR j IN 1..v_example_tab.COUNT LOOP
dbms_output.put_line(to_char(v_example_tab(j).hrc_org_id)||' '||
v_example_tab(j).hrc_descr||' '||
v_example_tab(j).org_short_name);
END LOOP;
END;
/

must be OK!:)
sunht 2005-07-29
  • 打赏
  • 举报
回复
szJetricy(振华)

谢谢,不过我要的是二维数组啊,这个类型我试验过了,不是特别符合
szJetricy 2005-07-29
  • 打赏
  • 举报
回复
DECLARE
TYPE num_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
v_example_tab num_tab;
BEGIN
FOR idx IN 1..10 LOOP
v_example_tab(idx) := (2**idx)+1;
END LOOP;
dbms_output.put_line('An example array:');
dbms_output.new_line;
FOR idx IN 1..10 LOOP
dbms_output.put_line(to_char(v_example_tab(idx)));
END LOOP;
END;
/

szJetricy 2005-07-29
  • 打赏
  • 举报
回复
"Index-by Table of Records" or "Index-by Table" should be ok.
sunht 2005-07-29
  • 打赏
  • 举报
回复
能否说清楚一点具体怎么做啊,谢谢。
njhart2003 2005-07-29
  • 打赏
  • 举报
回复
那就用临时表呗,对各个线程都是独立的,结果互不干扰。
sunht 2005-07-29
  • 打赏
  • 举报
回复
这样可能会有问题,因为这个函数会被各个线程同时调用,如果采用写表的方式,也许会清空其他线程正在用的数据

能采用数组的方式传递吗?想了很久没有什么特别方便的方法。
njhart2003 2005-07-29
  • 打赏
  • 举报
回复
思路供参考:

直接定义一个表tab1(x number,y number)
函数执行前清空表内的记录,
传入参数就是往tab1中插数据,
运算后,
再把结果保存在tab1中...

17,086

社区成员

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

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