我有一个这样的存储过程:
Create or replace procedure readEmpDetails (empRowList NUMBER_LIST_TYPE,
created_by VARCHAR2,
accessid NUMBER )
is
如何传递NUMBER_LIST_TYPE的参数:
begin readEmpDetails([124, 155, 147], '100', 2); end;
我想在Oracle SQL Developer中传递上述参数。
答案 0 :(得分:1)
执行以下步骤:
create or replace type T_array_readEmpDetails AS VARRAY(10) of number(4)
/
Create or replace procedure readEmpDetails (t_ar T_array_readEmpDetails,
created_by VARCHAR2,
accessid NUMBER )
is
begin
FOR i IN 1..t_ar.count LOOP
dbms_output.put_line(t_ar(i));
END LOOP;
end;
/
DECLARE
v T_array_readEmpDetails;
BEGIN
v := T_array_readEmpDetails();
v.EXTEND(3);
v(1) := 124;
v(2) := 155;
v(3) := 147;
readEmpDetails(v,'A',1);
END;
/
答案 1 :(得分:1)
如果NUMBER_LIST_TYPE是有效的oracle类型,则将其作为NUMBER_LIST_TYPE(124, 155, 147)
传递。
然后,您将“即时”创建具有3个元素的类型的实例。