代码之家  ›  专栏  ›  技术社区  ›  neesh

如何执行TOAD for Oracle的函数并将结果绑定到数据网格

  •  4
  • neesh  · 技术社区  · 16 年前

    我有一个函数,它的参数之一是pl/sql对象的VARRAY。如何执行此存储过程并将其返回的结果集绑定到TOAD for Oracle中的数据网格?

    1 回复  |  直到 16 年前
        1
  •  9
  •   neesh    16 年前

    在四处寻找之后,我找到了我自己问题的答案。假设您的varray类型称为varchar\u pair\u array,存储在该数组中的对象称为varchar\u pair\u object。varchar\u pair\u对象是一个简单的对象,它有两个varchar作为其成员。

    下面是执行接收varchar\u pair\u对象的varray的过程的代码:

    DECLARE 
      RetVal SYS_REFCURSOR;
      a_simplevalue VARCHAR2(200);
      another_simplevalue VARCHAR2(200);
      my_array_of_varchar_pairs VARCHAR_PAIR_ARRAY; -- assume varchar_pair_array is defined somewhere else
      my_obj VARCHAR_PAIR_OBJECT; -- assume varchar_pair_object is defined somewhere else
      my_other_obj VARCHAR_PAIR_OBJECT;
    BEGIN 
      a_simplevalue := 'hello';
      another_simplevalue := 'there';
      my_obj := VARCHAR_PAIR_OBJECT('nice to meet you', 'greetings');
      my_other_obj := VARCHAR_PAIR_OBJECT('goodbye', 'ciao');
      my_array_of_varchar_pairs := VARCHAR_PAIR_ARRAY(); 
      my_array_of_varchar_pairs.EXTEND(2); -- this should be the number of objects you plan to put into the array
      my_array_of_varchar_pairs(1) := my_obj;
      my_array_of_varchar_pairs(2) := my_other_obj; 
    
      RetVal := my_function ( a_simplevalue, another_simplevalue, my_array_of_varchar_pairs); -- assuming your array takes two varchars and one array of VARCHAR_PAIR_OBJECT (s)
      :to_grid := RetVal;
    
    END;
    

    帮助我的链接:

    http://www.smart-soft.co.uk/Oracle/oracle-plsql-tutorial-part-11.htm (关于收藏的好教程) http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/10_objs.htm#1972

    只需很少的改变,同样的事情也可以通过一个程序来完成。