我有一些 Oracle 数据库正在交换 HTTP 调用,我的中央数据库在 11g 上,并使用 mod_plsql 进行 GET 和 POST 调用。我想升级可能的数据库并开始使用 ORDS 而不替换我当前的代码,但是在传递未知数量的参数时遇到一些问题。
我有以下程序
PROCEDURE my_post_proc(
name_array IN owa.vc_arr,
value_array IN owa.vc_arr
)
对该过程的 HTTP 调用使用 URI(查询字符串)发送参数,此外还有 n 个包含长 clob 值块的参数
我无法通过 AutoREST 启用该过程成功调用此过程,因此我使用 APEX RESTful 服务创建了一个处理程序。我能够进入从 URI 发送的参数,并且能够通过专门使用参数名称来获取 clob 参数的块。
然而,这还不够好,因为我知道我将获得多少块。
这就是我的处理程序代码正在寻找的人
declare
name_array owa.vc_arr;
value_array owa.vc_arr;
begin
name_array(1) := ('param_1');
name_array(2) := ('param_2');
name_array(3) := ('clob_chunk_1');
value_array(1) := (:param_1);
value_array(2) := (:param_2);
value_array(3) := (:clob_chunk_1); -- This is working but not what I am after as can be dynamic number of chunks
--Should be something more like
for i in 1..(some collection holding the parameters)
loop
name_array(i) := 'clob_chunk_'||i;
value_array(i) := Collection('clob_chunk_'||i);
end loop;
my_post_proc(name_array,value_array);
end;
这可以以某种方式实现吗?