【问题标题】:Oracle ATP autonomouse db - how to encode special charactersOracle ATP 自治数据库 - 如何编码特殊字符
【发布时间】:2022-03-10 03:11:28
【问题描述】:

我有一个 ATP 云数据库,我在其中使用 apex_web_service.make_rest_request 过程发出 REST 请求。该服务在数据中包含 &(与号)的特定 JSON 有效负载上失败。服务提供商告诉我通过 url 编码实用程序运行它,但我不知道 ATP 数据库中有哪些实用程序可以执行此操作。希望有人可以提供帮助。

 {
   \"Id\" : \"123\",
   \"Name\" : \"THELMA & LOUISE\",
   \"state\" : \"CA\"
 }

    标签: oracle-autonomous-db


    【解决方案1】:

    Joe - 您不需要转义“&”字符,您的 PL/SQL 代码只是按原样获取数据。 所以,有几件事:

    • 如果数据已经编码,请确保在使用 MAKE_REST_REQUEST 函数时使用正确的“Content-Type”标头(例如:“text/plain”)。 例子:

       declare
           l_result clob;
       begin
       apex_web_service.g_request_headers.delete();
       apex_web_service.g_request_headers(1).name  := 'Content-Type';
       apex_web_service.g_request_headers(1).value := 'text/plain';
      
       l_result := apex_web_service.make_rest_request(
       p_url => 'http://us.music.yahooapis.com/ video/v1/list/published/popular',
       p_http_method => 'GET',
       p_parm_name => apex_util.string_to_table('appid:format'),
       p_parm_value => apex_util.string_to_table('xyz:xml'));    
      

      结尾;

    • 如果你真的需要转义它,那么你可以使用apex_json.stringify 函数。

    请提供您的代码示例以更好地帮助您。

    【讨论】:

    • 谢谢莫妮卡。事实证明&符号很好。还有另一条记录有 CR/LF(回车和换行)。我能够删除这些并且 REST 服务运行良好。
    • 很高兴听到!
    猜你喜欢
    • 2019-08-29
    • 2014-12-21
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2011-05-09
    相关资源
    最近更新 更多