如何执行TOAD for Oracle的函数并将结果绑定到数据网格
我有一个函数,它的参数之一是pl/sql对象变量。如何执行此存储过程并将其返回的结果集绑定到TOAD for Oracle中的数据网格?经过一番搜索,我找到了自己问题的答案。假设您的varray类型称为varchar\u pair\u array,存储在该数组中的对象称为varchar\u pair\u object。varchar\u pair\u对象是一个简单的对象,它有两个varchar作为其成员 以下是执行接收varchar\u pair\u对象的varray的过程的代码: 在TOAD的sql编辑器中复制粘贴此代码,并对其进行更改以适应您的函数和类型,然后点击F9。蟾蜍会问您:to_网格变量的类型。选择cursor(假设函数返回ref cursor)并按enter键。TOAD将结果集绑定到数据网格 帮助我的链接: (关于收藏的好教程) (在这种情况下,关于声明和初始化对象的部分特别有用)如何执行TOAD for Oracle的函数并将结果绑定到数据网格,oracle,plsql,toad,Oracle,Plsql,Toad,我有一个函数,它的参数之一是pl/sql对象变量。如何执行此存储过程并将其返回的结果集绑定到TOAD for Oracle中的数据网格?经过一番搜索,我找到了自己问题的答案。假设您的varray类型称为varchar\u pair\u array,存储在该数组中的对象称为varchar\u pair\u object。varchar\u pair\u对象是一个简单的对象,它有两个varchar作为其成员 以下是执行接收varchar\u pair\u对象的varray的过程的代码: 在TOAD的
只需很少的更改,就可以用一个过程来完成相同的操作。还可以查看模式浏览器中的“执行过程”功能。它有一个选项,可以在执行后将ref游标结果加载到网格中。它还有一个优点,就是它可以记住您上次执行该过程时使用的参数。问题是,对于复杂类型(如varray和对象),它不会(不能?)为复杂类型生成sql,您需要自己初始化它们。是的,但这就是为什么它允许您在执行之前编辑代码:)是的。事实上,这段代码的大部分是由TOAD从execute过程生成的。我只是不知道如何编辑代码以传入一个对象数组,这就是我最初在这里提出这个问题的原因。谢谢
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;