Db2にはV10.5 FixPack1からMongoDB互換でJSONデータをデータベースに格納/照会できる機能がありました。
- Db2 NoSQL機能でJSONドキュメントを操作する3つの方法
Db2 11.1.2.2からは、直接SQLを使ってJSONデータを保管や検索するサポートが追加されています。
わざわざNoSQLデータベースを用意する必要なく、JSONデータも手軽にRDBMSに格納しておきたい、SQLと一緒に使いたいという場合の簡単な方法になります。
-
参考
モディフィケーション・パックおよびフィックスパックの更新- 開発者は SQL を使用して JSON データを直接保管および検索することができるようになりました。
JSON データは、BSON (バイナリー JSON) と呼ばれるバイナリー・エンコード形式で格納されます。開発者は、SQL ベースのルーチンを利用できるようになりました。
注)今後のDb2 11.1.4.4では更にJSON SQLファンクションの機能拡張がプランされています。
Db2のJSON関数
SQL を使用して、JSON データの保管と取得を直接行う方法を見ていきます。
JSON 関連の関数は、JSON_VAL 関数を除いてすべてスキーマ SYSTOOLS にカタログされています。JSON_VAL はスキーマ SYSIBM にカタログされています。
(補足)これらの関数は、UTF-8 ベースのデータベース(Unicodeデータベース)に対して機能します。
SYSTOOLS関数 | |
---|---|
JSON_VAL | JSON データを SQL データ・タイプで取得します |
JSON_TABLE | 2 つの列を持つ表を返します |
JSON_TYPE | 指定されたエレメントの BSON タイプを返します |
JSON_LEN | JSON ドキュメント内の配列タイプのエレメント内にあるエレメント数を返します |
BSON2JSON | バイナリー形式 (拡張 BSON) の JSON ドキュメントを判読可能な JSON テキスト形式に変換します |
JSON2BSON | JSON ドキュメントを BSON 形式の同等のバイナリー表現に変換します |
JSON_GET_POS_ARR_INDEX | JSON_TABLE 関数で配列値を抽出する必要なしに配列値を検索します |
JSON_UPDATE | JSON_TABLE 関数で配列値を抽出する必要なしに配列値を検索します |
BSON_VALIDATE | 指定された BLOB データが有効な JSON データかどうかを検査します |