Combine

Teradata® Database JSONデータ型

brand
Software
prodname
Teradata Database
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1150-162K-JPN

目的

Combineメソッドは、2つのJSON文書を取得し(JSON式によって指定)、それらを結合し、配列またはオブジェクトとして構成された1つのJSON文書を返します。

構文



構文要素

JSON_expr
JSONデータ型と評価される式。例えば、テーブルの列、定数、関数またはメソッドの結果です。
'ARRAY'
'OBJECT'
オプションです。結果タイプを'ARRAY'または'OBJECT'として明示的に指定します。
'ARRAY'が指定されると、結果は配列として構成されたJSON文書となります。'OBJECT'が指定されると、結果はオブジェクトとして構成されたJSON文書となります。
'OBJECT'の指定時は組み合わせられるJSON文書は両方ともJSONオブジェクトである必要があります。その他の場合は、エラーが報告されます。

ルールと制限

結合の結果が大きすぎる場合は、エラーが発生します。結果は、JSON型の最大長を超えることはできません。最大長の詳細については、JSONインスタンスの最大長を参照してください。

Combineメソッドの結果をテーブルの列に挿入する、またはUDF、UDM、ストアド プロシージャ、外部ストアド プロシージャでパラメータとして使用する場合、結果の長さは定義されているJSONインスタンスの最大長となります。この値が大きすぎる場合はエラーが発生します。

使用上の注意

2つのJSON文書を結合すると、両方の入力文書のデータを含む1つのJSON文書になります。結果として得られる文書は、JSONオブジェクトまたはJSON配列として構成されます。結合されたJSON文書は、互いの構成とは異なる可能性があります。例えば、配列として構成されたJSON文書をオブジェクトとして構成されたJSON文書と結合すると、結合した文書の構成はJSON配列となります。次に、さまざまな結合結果について説明します。

'ARRAY'パラメータがコマンドで指定される場合

  • 両方の入力JSON文書がJSON配列として構成されると、結果は各JSON文書の値を含む配列となります。

    例えば、j1 = [1,2]、j2 = [3,4]の場合、結合は[1,2,3,4]となります。

  • JSON文書の1つがJSON配列として構成され、もう1つがJSONオブジェクトとして構成される場合、結果は配列として構成されたJSON文書のすべての要素、およびオブジェクトとして構成されたJSON文書全体(2つ目の文書)となるもう1つの要素から成るJSON配列です。

    例えば、j1 = [1,2]、j2 = {"name" : "Jane"}の場合、結合は[1,2, { "name" : "Jane" } ]となります。

  • 両方のJSON文書がJSONオブジェクトとして構成されると、結果は組み合わせられている各JSONオブジェクトのオブジェクトとして構成されたJSON文書から成る配列として構成されたJSON文書です。

    例えば、j1 = { "name" : "Harry" }、j2 = { "name" : "Jane" }の場合、結合は[ { "name" : "Harry" }, {"name" : "Jane"} ]となります。

'OBJECT'パラメータがコマンドで指定される場合

結果は各入力オブジェクトのすべてのメンバーを含むオブジェクトとして構成された1つの組み合わせJSON文書となります。

例えば、j1 = { "name" : "Jane" , "age" : "30" }、j2 = { "name" : "Harry", "age" : "41" }の場合、組み合わせは{ "name" : "Jane" , "age" : "30" , "name" : "Harry" , "age" : "41" }となります。

組み合わせようとするJSON文書のいずれかが配列として構成されていると、エラーが報告されます。

'ARRAY'または'OBJECT'がコマンドで指定されていない場合

  • 両方のJSON文書がJSON配列として構成されると、結果は各JSON文書の値を含む配列として構成された1つのJSON文書となります。
  • いずれかのJSON文書が配列として構成されると、結果は配列として構成された1つのJSON文書となります。配列であるJSON文書のすべての要素と、オブジェクトとして構成されたJSON文書全体であるもう1つの要素から成ります。これは'ARRAY'を指定した場合と同じ動作です。
  • 両方のJSON文書がオブジェクトとして構成されると、結果は各入力オブジェクトのすべてのメンバーを含む1つのオブジェクトとして構成された1つの組み合わせJSON文書です。これは、'OBJECT'を指定した場合と同じ動作です。

COMBINEパラメータとNULLパラメータ

  • 組み合わせようとするJSON文書のいずれかがNULLの場合、結果は非NULLのJSON文書となります。
  • 組み合わせようとする両方のJSON文書がNULLの場合、結果はTeradata NULLになります。

COMBINEとCHARACTER SET

  • 組み合わせれているJSON文書のいずれかにCHARACTER SET UNICODEが含まれている場合、結果のJSONインスタンスにはCHARACTER SET UNICODEのテキストが含まれます。
  • 組み合わせれている両方のJSON文書にCHARACTER SET LATINのテキストがある場合、結果のJSONインスタンスにはCHARACTER SET LATINのテキストが含まれます。

COMBINEとストレージ形式

任意のストレージ形式で格納されたJSONデータは、その他の形式で格納されたJSONデータと組み合わせることができます。

  • 結合する両方のJSON文書をテキストとして格納している場合、結合結果は前節で定義した文字セットでテキストとして格納されるJSON文書になります。
  • JSON文書の一方をテキストとして格納し、他方をバイナリ形式で格納している場合、結合結果はCHARACTER SET UNICODEでテキストとして格納されるJSON文書になります。
  • JSON文書の一方をBSONとして格納し、他方をUBJSONとして格納している場合、結合結果はBSON形式で格納されるJSON文書になります。
  • 両方の文書がUBJSON形式で格納されている場合、結果はUBJSON形式で格納されたJSON文書になります。