2017-01-11 6 views
0

oracle JSON_TABLEに関する質問があります。私はテーブル内のCLOB Column()にあるJSONを調べています。Oracle JSON_TABLE - 問合せの結果を入力できませんVarchar(4000)

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

(文書)[http://docs.oracle.com/database/121/SQLRF/functions093.htm#SQLRF56707]によれば、NUMBERまたはVARCHAR2のみを持つことができます。すなわち、4000に制限され、32767文字です。 '' jsonvalue''は本当に単一の値ですか、それともさらに分割することができますか? –

+0

これはJava Objectをさらに解析する単一の値です –

答えて

0

あなたが拡張有効にしているVARCHARセマンティクス(AKA VARCHAR2(32K)。これは、あなたがデータの32Kまで戻る聞かせ

。あなたが本当にデータの32Kを超えると値を持っていますか...

+0

Hello Markはい、私は32K以上のデータを持っています –

関連する問題