我想将本地 json clob 变量转换并插入到这样的表中:
insert into IMP_JSON
select json_name, json_value
from json_table (
l_clob format json,
'$[*]' error on error columns (
json_name varchar2(32) path '$.name' null on empty,
json_value varchar2(32) path '$.value' null on empty
)
)
使用此代码,我收到一条错误消息
提供的 JavaScript 对象表示法 (JSON) 运算符生成的结果超出了 RETURN 子句中指定的最大长度。增加 RETURNING 子句中数据类型的最大大小或在 RETURNING 子句中使用 CLOB 或 BLOB。
我找不到如何在
RETURNING
中包含 json_table
子句,但如果我跳过 error on error
并运行该过程,生成的表似乎完整且没有被截断。
error on error
是否安全,或者可能会截断其他输入的数据?RETURNING
子句?json_value
函数默认返回 varchar2(4000)。
要扩展它,您可以使用 returning
子句,如错误消息所示。使用返回,您的查询应该是:
INSERT INTO IMP_JSON
SELECT json_name, json_value
FROM json_table (
l_clob format json,
'$[*]' error on error columns (
json_name varchar2(32000) path '$.name' null on empty,
json_value varchar2(32000) path '$.value' null on empty
)
);