使用 APEX 发出 GET 请求

make a GET request using APEX

这道题很简单

¿为什么我不能使用下一个代码?

select apex_web_service.make_rest_request(
    --p_url => 'https://api.exchangeratesapi.io/history?start_at=2018-01-01\&\end_at=2018-09-01',
    p_url => 'https://api.exchangeratesapi.io/history?',
    p_http_method => 'GET',
    p_parm_name   => APEX_UTIL.string_to_table('start_at:end_at'),
    --p_parm_value  => APEX_UTIL.string_to_table('"2018-01-01":"2018-09-01"')
    --p_parm_value  => APEX_UTIL.string_to_table('"2018-01-01"' || ':' || '"2018-09-01"')
    --p_parm_value  => APEX_UTIL.string_to_table('2018-01-01:2018-09-01', ':')
    p_parm_value  => APEX_UTIL.string_to_table('2018-01-01:2018-09-01')
) as test
from dual;

这是错误:

ORA-00902: tipo de dato no válido
00902. 00000 -  "invalid datatype"
*Cause:    
*Action:
Error en la línea: 20, columna: 22

我也试试这个表格:

declare
  l_clob clob;
begin
  l_clob := APEX_WEB_SERVICE.make_rest_request(
    p_url         => 'https://api.exchangeratesapi.io/history',
    p_http_method => 'GET',
    --p_parm_name   => APEX_UTIL.string_to_table('"start_at"' || ':' ||'"end_at"'),
    p_parm_name   => APEX_UTIL.string_to_table('start_at:end_at'),
    --p_parm_value  => APEX_UTIL.string_to_table('"2018-01-01"' || ':' || '"2018-09-01"')
    p_parm_value  => APEX_UTIL.string_to_table('2018-01-01' || ':' || '2018-09-01')
    --p_parm_value  => APEX_UTIL.string_to_table(2018-01-01 || ':' || 2018-09-01)
    --p_parm_value  => APEX_UTIL.string_to_table('2018-01-01:2018-09-01')
  ) ;
    dbms_output.put_line(l_clob);
end;
/

这是错误:

Informe de error -
ORA-06502: PL/SQL: error  numérico o de valor
ORA-06512: en línea 14
06502. 00000 -  "PL/SQL: numeric or value error%s"
*Cause:    An arithmetic, numeric, string, conversion, or constraint error
           occurred. For example, this error occurs if an attempt is made to
           assign the value NULL to a variable declared NOT NULL, or if an
           attempt is made to assign an integer larger than 99 to a variable
           declared NUMBER(2).
*Action:   Change the data, how it is manipulated, or how it is declared so
           that values do not violate constraints.

我想要这个 json: https://api.exchangeratesapi.io/history?start_at=2018-01-01&end_at=2018-09-01

我尝试使用 postman,成功了

有几条评论,是测试的但不起作用。

真的有效p_parm_namep_parm_value?

有人可以帮我吗?

此致

问题出在您的 dbms_output.put_line 上。 dbms_output.put_line 限制为 VARCHAR2,或 32,767 字节。如果你使用下面的代码,你会看到你得到了一个结果。我拿到的尺码是74037

declare
  l_clob clob;
begin
  l_clob := APEX_WEB_SERVICE.make_rest_request(
    p_url         => 'https://api.exchangeratesapi.io/history',
    p_http_method => 'GET',
    p_parm_name   => APEX_UTIL.string_to_table('start_at:end_at'),
    p_parm_value  => APEX_UTIL.string_to_table('2018-01-01' || ':' || '2018-09-01')
  ) ;

  dbms_output.put_line(dbms_lob.getlength(l_clob));
end;
/