【发布时间】:2019-12-18 18:07:35
【问题描述】:
我有一个使用 Rest web 服务的简单脚本,它工作正常,但是当答案超过 2000 个字符时,选择响应被剪切并且信息丢失,所以我需要一种方法来保留所有要插入的数据稍后将它们放入表格中。
这是我的脚本
WITH JSON AS
(
SELECT UTL_HTTP.REQUEST('http://jsonplaceholder.typicode.com/comments?postId=1') DOC FROM DUAL
)
SELECT
POSTID,
ID,
NAME,
EMAIL,
BODY
FROM JSON_TABLE
(
(SELECT DOC FROM JSON),
'$[*]' COLUMNS
(
POSTID PATH '$.postId',
ID PATH '$.id',
NAME PATH '$.name',
EMAIL PATH '$.email',
BODY PATH '$.body'
)
)
使用此 URL 可以正常工作:'http://jsonplaceholder.typicode.com/comments?postId=1'(少于 2000 个字符)
用这个大一点,问题就出现了:'http://jsonplaceholder.typicode.com/comments'(超过2000个字符)
TY
【问题讨论】:
-
查询大型 JSON 有效负载时存在记录限制。您使用的是什么版本的 Oracle?你有安装 APEX 吗?
-
UTL_HTTP.REQUEST only returns 2000 characters。您需要将响应加载到 clob 中以在查询中使用它;您可以编写自己的函数,如果安装了 APEX,也可以使用 APEX_WEB_SERVICE.MAKE_REQUEST。
-
Oracle 12c,我没有使用 APEX,因为我想让它尽可能简单。
-
您的另一个选择是使用 Java。这是我尝试处理非常大的 JSON 数据时的解决方案。
标签: json oracle rest web-services