0

我有一些 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;

这可以以某种方式实现吗?

4

0 回答 0