You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX中apex_web_service.make_rest_request无法添加查询参数

解决方法

方法1:通过p_parm_name和p_parm_value传递所有查询参数

把原URL中的filter参数也纳入参数列表,而非直接写在p_url中,这样所有参数会被自动正确拼接和编码:

declare
  l_clob clob;
begin
  l_clob := apex_web_service.make_rest_request(
              p_url => 'http://myurl.mycompany.net/api/people',
              p_http_method => 'GET',
              p_parm_name => apex_util.string_to_table('filter,appid,attrs'),
              p_parm_value => apex_util.string_to_table('(cn=kxxxxx),GPVC,sn,displayName')
              );
            
  DBMS_OUTPUT.put_line(l_clob);
end;

方法2:手动拼接URL时规避&触发绑定变量提示

若必须手动拼接URL,用chr(38)替代&(chr(38)是ASCII码对应的&字符),避免PL/SQL将其识别为绑定变量前缀:

declare
  l_clob clob;
  l_url varchar2(1000);
begin
  l_url := 'http://myurl.mycompany.net/api/people?filter=(cn=kxxxxx)' 
           || chr(38) || 'appid=GPVC' 
           || chr(38) || 'attrs=sn,displayName';

  l_clob := apex_web_service.make_rest_request(
              p_url => l_url,
              p_http_method => 'GET'
              );
            
  DBMS_OUTPUT.put_line(l_clob);
end;

方法3:用apex_util.url_encode确保参数编码正确

如果参数包含特殊字符(如括号、逗号),建议对参数值编码,避免接口解析错误:

declare
  l_clob clob;
  l_filter varchar2(100) := apex_util.url_encode('(cn=kxxxxx)');
  l_attrs varchar2(100) := apex_util.url_encode('sn,displayName');
  l_url varchar2(1000);
begin
  l_url := 'http://myurl.mycompany.net/api/people?filter=' || l_filter
           || chr(38) || 'appid=GPVC' 
           || chr(38) || 'attrs=' || l_attrs;

  l_clob := apex_web_service.make_rest_request(
              p_url => l_url,
              p_http_method => 'GET'
              );
            
  DBMS_OUTPUT.put_line(l_clob);
end;

原代码参数传递失败原因

原代码将filter参数直接写在p_url中,再用p_parm_name传递appid,部分环境下apex_web_service.make_rest_request无法正确拼接已有查询参数的URL,将所有参数统一放入p_parm_name/p_parm_value列表是更可靠的方案。

内容的提问来源于stack exchange,提问作者smackenzie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:06:09