ORACLE APEX web服务p_body_blob

ORACLE APEX web服务p_body_blob,oracle,rest,oracle-apex,Oracle,Rest,Oracle Apex,我正在寻找一个将请求正文中的json文件传递给apex_web_服务的示例。make_rest_请求 有人能给我举个例子吗 谢谢, RD我看到了两种通过apex\u web\u服务发送文件的方法。发出rest\u请求。在我的示例中,我使用了从表示例表列blob\u LOGO检索的图像文件blob 备选案文1: 将查询中的文件blob类型直接缓存到blob对象中,并通过p\u body\u blob参数发送 DECLARE obj_sample SAMPLE_TABLE%ROWTYPE;

我正在寻找一个将请求正文中的json文件传递给apex_web_服务的示例。make_rest_请求 有人能给我举个例子吗

谢谢,
RD

我看到了两种通过apex\u web\u服务发送文件的方法。发出rest\u请求。在我的示例中,我使用了从表示例表blob\u LOGO检索的图像文件blob

备选案文1: 将查询中的文件blob类型直接缓存到blob对象中,并通过p\u body\u blob参数发送

DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE;     
    file_blob blob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as blob
    file_blob := obj_sample.BLOB_LOGO; 

    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body_blob     => file_blob,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;
DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE; 
    json_sample clob; 
    file_clob clob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as clob
    file_clob := apex_web_service.blob2clobbase64(obj_sample.BLOB_LOGO); 
    json_sample := json_object(
        'SAMPLE_LOGO' value img_clob
    );

    apex_web_service.g_request_headers(1).name := 'Content-Type';
    apex_web_service.g_request_headers(1).value := 'application/json';
    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body          => json_sample,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;
备选案文2: 首先将文件blob数据类型转换为base64 clob对象,并通过p_body参数将其作为json body(clob)发送

DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE;     
    file_blob blob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as blob
    file_blob := obj_sample.BLOB_LOGO; 

    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body_blob     => file_blob,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;
DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE; 
    json_sample clob; 
    file_clob clob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as clob
    file_clob := apex_web_service.blob2clobbase64(obj_sample.BLOB_LOGO); 
    json_sample := json_object(
        'SAMPLE_LOGO' value img_clob
    );

    apex_web_service.g_request_headers(1).name := 'Content-Type';
    apex_web_service.g_request_headers(1).value := 'application/json';
    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body          => json_sample,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;

我看到了两种通过apex\u web\u服务发送文件的方法。发出请求。在我的示例中,我使用了从表示例表blob\u LOGO检索的图像文件blob

备选案文1: 将查询中的文件blob类型直接缓存到blob对象中,并通过p\u body\u blob参数发送

DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE;     
    file_blob blob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as blob
    file_blob := obj_sample.BLOB_LOGO; 

    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body_blob     => file_blob,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;
DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE; 
    json_sample clob; 
    file_clob clob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as clob
    file_clob := apex_web_service.blob2clobbase64(obj_sample.BLOB_LOGO); 
    json_sample := json_object(
        'SAMPLE_LOGO' value img_clob
    );

    apex_web_service.g_request_headers(1).name := 'Content-Type';
    apex_web_service.g_request_headers(1).value := 'application/json';
    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body          => json_sample,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;
备选案文2: 首先将文件blob数据类型转换为base64 clob对象,并通过p_body参数将其作为json body(clob)发送

DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE;     
    file_blob blob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as blob
    file_blob := obj_sample.BLOB_LOGO; 

    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body_blob     => file_blob,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;
DECLARE 
    obj_sample SAMPLE_TABLE%ROWTYPE; 
    json_sample clob; 
    file_clob clob;
    l_response clob;
BEGIN 
    -- query
    select * INTO obj_sample 
    from SAMPLE_TABLE where ID = 123;

    -- file as clob
    file_clob := apex_web_service.blob2clobbase64(obj_sample.BLOB_LOGO); 
    json_sample := json_object(
        'SAMPLE_LOGO' value img_clob
    );

    apex_web_service.g_request_headers(1).name := 'Content-Type';
    apex_web_service.g_request_headers(1).value := 'application/json';
    l_response   := apex_web_service.make_rest_request(
        p_url           => 'url/to/api/',
        p_http_method   => 'POST',
        p_body          => json_sample,
        p_proxy_override => 'url/to/proxy'
    );
    dbms_output.put_line(l_response);
END;