问题描述
这个问题很简单。
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_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
我尝试与邮递员一起工作
有几个评论,是测试的,但不起作用。
p_parm_name 和 p_parm_value 真的有效吗?
有人可以帮我吗?
问候
解决方法
问题在于您的 dbms_output.put_line。 dbms_output.put_line 限制为 VARCHAR2,或 32,767 字节。如果你使用下面的代码,你会看到你得到了一个结果。我得到的大小是 74,037。
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;
/