如何在程序参数中传递Multi值,使用类型?
我希望我的输入参数的过程采用多值,' 1,2,3,4,5...'
并将其转换为一个表,其中包含输入值的列和行号的列!使用类型或函数。
首先我创建了包含两个属性(值,行号)的对象类型,然后我创建了该类型对象的表。 我想要分割功能,但使用类型,我尝试了很多东西,但我至少需要步骤。
答案 0 :(得分:0)
创建一个简单的表格......
create table table1 (column1 number);
创建程序......
create or replace procedure proc_one
(v_input IN table1.column1%type)
IS
v_local number;
begin
insert into table1 values (v_input);
end;
每次都运行带有循环和执行过程的匿名块,直到列中的所有行都循环完成。
declare
var_local number;
begin
--select count(column1) into v_local from table1;
--or
--var_local := 1;
--or
for i in (select column1 from table) loop
proc_one(i.column1);
end loop;
exception
when others then
dbms_output.put_line('Calling procedure has been failed.');
end;
答案 1 :(得分:0)
hi如果输入参数中只有整数值,则可以使用xmltable。 v_list是行中的输入值;它会将行转换为列(元素集合)并将my_list收集到集合变量中。
select to_number(column_value)
bulk collect into my_list
from xmltable(vList);