使用 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_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

我尝试与邮递员一起工作

enter image description here

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

p_parm_namep_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;
/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...