D テキストJSONデータからJSONデータ型への移行

テキストJSONデータ(型VARCHAR2CLOBまたはBLOB)ではなく、ネイティブ・バイナリJSONデータ(型JSON)を使用することをお薦めします。既存のテキストJSONデータをJSON型に移行する方法を説明します。ここでは、(1)アップグレード前チェック、(2)データの移行、(3)依存データベース・オブジェクトの処理を行います。

データ型JSONを使用すると、コストのかかるテキストJSONデータ解析が回避され、問合せのパフォーマンスが向上します。

次のいずれかの方法で、データの移行(ステップ2)は可能です。それぞれの方法では、元の表と同じ形状の、テキストJSON列ではなくJSON型列が含まれる新しい表を作成します。

  • 元の表のテキストJSON列の問合せを使用して、JSON型列に移入します。これを行う方法には、CREATE TABLE AS SELECT (CTAS)またはSELECT (IAS)としてのINSERTの2つがあります。

  • Oracle Data Pumpをデータのみモードで使用します。元の表をダンプ・ファイルにエクスポートした後、そのダンプ・ファイルを新しい表にインポートします。

  • オンライン再定義を使用します。

ノート:

デフォルトでは、単純なドット表記法問合せまたはSQL演算子(json_queryなど)によって返されるJSON値は、入力データがJSON型の場合はJSONデータ型として返され、それ以外の場合はVARCHAR2(4000)型として返されます。

テキストで格納されたJSONデータをJSON型の記憶域に移行する場合、デフォルトの戻り型におけるこの違いに注意してください。デフォルトの戻り型をオーバーライドするには、SQL演算子にRETURNING VARCHAR2(4000)を指定するか、項目メソッドstring()を使用して前の動作を取得します。「SQLファンクションで使用されるRETURNING句」および「SQL/JSONパス式の項目メソッド」を参照してください。

_________________________________________________________

関連トピック