我对oracle JSON_TABLE有疑问。我正在咨询表中CLOB Column()中的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似乎不支持此数据类型。
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
您是否启用了扩展VARCHAR语义(AKA VARCHAR2(32k)..
这样可以返回最多32k的数据。你真的拥有超过32K数据的价值......
答案 1 :(得分:0)
在语句中,您仅指定VARCHAR2,而没有任何长度信息。不论MAX_STRING设置如何,都将在内部将其解释为VARCHAR2(4000)。 如果需要最大长度,请使用VARCHAR2(32767)代替VARCHAR2。
从12.2开始,还可以将CLOB或BLOB用作值> 32767的列数据类型。