我有一个关于oracle JSON_TABLE的问题。我正在查询表中CLOB列()中的JSON。下面是我的问题:
select b.jsonvalue
from TB_ABC a,
json_table(a.json_value, '$[*]'
columns(
targett VARCHAR2 PATH '$.target',
jsonvalue varchar2(4000) FORMAT JSON PATH '$.targetData[*]',
NESTED PATH '$.targetData[*]' COLUMNS(
typee VARCHAR2 PATH '$.type'
)
)
) b但返回给"jsonvalue“的值大于4000个字符,所以不能用Varchar2填充。
我已经尝试将"jsonvalue“的数据类型更改为CLOB,但JSON_TABLE似乎不支持此数据类型。
我能做些什么来解决这个问题?
发布于 2017-01-12 12:20:32
您是否启用了扩展的VARCHAR语义(也称为VARCHAR2(32k)..
这将允许您返回高达32k的数据。你真的有超过32K数据的价值吗?
发布于 2019-11-05 00:50:47
在语句中,您只需指定VARCHAR2,而不指定任何长度信息。无论MAX_STRING设置如何,这将在内部被解释为VARCHAR2(4000)。如果您想要最大长度,请使用VARCHAR2(32767)代替VARCHAR2。
从12.2开始,对于大于32767的值,还可以使用CLOB或BLOB作为列数据类型。
https://stackoverflow.com/questions/41600970
复制相似问题