目的
JSON_PUBLISHは、各種のデータ ソースからJSONデータ型インスタンス(複数可)を構成するために使用するテーブル演算子で、基本的にSQL文で参照できる任意のものが該当します。バイナリ ストレージ形式などサポートされる任意のJSON形式にデータを発行できます。JSON_PUBLISHには、64Kより大きなデータをJSON文書に集約する機能があります。
構文
JSON_PUBLISHは標準のテーブル演算子の構文を使用します。詳細については、<Teradata Vantage™ SQLデータ操作言語>でSELECT文の一部として記述されるテーブル演算子構文を参照してください。
オプション カスタム句
- DO_AGGREGATE
- これにより、出力インスタンスが入力データの1つの行で構成されます。この句は次のように'Y'または'N'(文字の大小は問わず)を受け入れます。
- 'Y'で結果を集計することを指定します。 これは、デフォルトです。
- 'N'で結果が集計されないことを指定します。
この句を除外すると、JSON_PUBLISHは特定のグループ(ON句のSELECT文にあるオプションのGROUP BY句で定義される)に対応するすべてのデータを、1つのJSONデータ型インスタンスに集約します。なお、このカスタム句とGROUP BY句がないと、すべての入力行が1つのインスタンスとしてグループ化されるので注意してください。データをJSONデータ型インスタンスに集約した結果、指定された最大サイズに基づいてサイズのオーバーフローが生じると、該当するエラー文字列をともなうエラーが報告されます。
- WRITE_ARRAY
- これにより、出力インスタンスが最上位レベルでJSON配列でなくなります。このため、デフォルトでは、発行されたデータを表わす1つ以上のJSON文書から構成されるJSON配列を返します。この句によって受け入れられる唯一の値は、文字'N'(文字の大小を問わず)です。
発行されたデータをJSON配列にグループ化せず、グループ化しないとJSON構文に違反する場合は、該当するエラー文字列をともなうエラーが報告されます。
戻り値
JSON_PUBLISHはdataという1つの出力列を返しますが、これは結果として得られるJSON文書です。このテーブル演算子の戻り値の型は、常に最大サイズのJSONデータ型です。
JSON_PUBLISHは、テーブル演算子のRETURNS句を使用してデータを任意の文字セットまたはストレージ形式のJSONデータ型に構成できます。デフォルトでは、最大サイズのJSON CHARACTER SET LATINインスタンスを返します。