使用 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_name和p_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;
/
这道题很简单
¿为什么我不能使用下一个代码?
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_name和p_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;
/