在使用BDMS_SQL包时对表进行动态批量插入时,用bind_array()来绑定一个自定义类型的Table,Table的定义如下:
Type AAA is table of [自定义数据类型]; a1 AAA;
当a1作为bind_array的参数时,提示数据类型不符合,后来我查阅了资料,发现bind_array()这个Procedure不能处理自定义数据类型,我想请教一下,有没有方法可以代替,我需要做自定义数据类型的批量插入。
Type AAA is table of [自定义数据类型]; a1 AAA;
当a1作为bind_array的参数时,提示数据类型不符合,后来我查阅了资料,发现bind_array()这个Procedure不能处理自定义数据类型,我想请教一下,有没有方法可以代替,我需要做自定义数据类型的批量插入。
RESULT INTEGER;
v_insert_sql VARCHAR2(1000);
v_handle_cursor NUMBER;
v_fetch_number Number;
TYPE table_index_list IS TABLE OF var_arry_254_32; --var_arry_254_32是用户自定义的类型
aa table_index_list;
begin
/*
对AA进行填值操作
*/ v_insert_sql := v_insert_sql := ' insert into test(name) values(:bnd1)';
v_handle_cursor := dbms_sql.open_cursor;
dbms_sql.parse(v_handle_cursor, v_insert_sql,dbms_sql.native);
dbms_sql.bind_arry(v_handle_cursor, 'bnd1', aa);
v_fetch_number := dbms_sql.EXECUTE(v_handle_cursor);
-- finish
dbms_sql.close_cursor(v_handle_cursor);
commit;
RESULT := 1;
return(RESULT);
end fn_generate_n;