我有一族二维坐标数值(x1,y1).....(xn,yn)
n的数量不确定,不过能够确定n的上限数值,定义怎么样的类型才能最方便的将这组
坐标数值作为参数传入到函数中去,并传出一组(ALLX,ALLY)的坐标?在线等啊,有了答案马上结贴

解决方案 »

  1.   

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

  2.   

    "Index-by Table of Records" or "Index-by Table" should be ok.
      

  3.   

    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;
    /
      

  4.   

    szJetricy(振华) 谢谢,不过我要的是二维数组啊,这个类型我试验过了,不是特别符合
      

  5.   

    嵌套一下,两种办法。
    1。Index-Table
    2. Index-by Table of RecordsDECLARE
      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!:)