经过一番搜索后,我找到了自己问题的答案.假设您的varray类型名为varchar_pair_array,并且存储在此数组中的对象称为varchar_pair_object. varchar_pair_object是一个简单的对象,它有两个varchars作为它的成员.
以下是执行proc的代码,该代码接收varchar_pair_object(s)的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;
复制粘贴此代码在TOAD的sql编辑器中并更改它以适应您的功能和类型,然后点击F9. TOAD会询问你:to_grid变量的类型.选择光标(假设您的函数返回引用光标)并按Enter键. TOAD将结果集绑定到数据网格.
帮助我的链接:
只需很少的更改,就可以通过一个程序完成同样的操作.