例: JSONIDおよびROWINDEXキーワードを使用するJSON_SHRED_BATCH

Teradata® Database JSONデータ型

brand
Software
prodname
Teradata Database
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1150-162K-JPN
この例では、JSONIDおよびROWINDEXキーワードの使い方を示します。
この例を実行する前に、ソース テーブル(jsonshred.JSONDocs)に対してSELECT権限があること、およびターゲット テーブル(jsonshred.Teradata_Employees)に対してINSERT権限があることを確認します。
CALL SYSLIB.JSON_SHRED_BATCH(
   'SELECT * FROM jsonshred.JSONDocs',
   NEW JSON('[
   {
   "rowexpr" : "$.employees.info[*]",
   "colexpr" : [{"col1" : "$..id", "type" : "INTEGER"},
                {"col2" : "$.employees.company", "type" : "VARCHAR(15)","fromRoot":true},
                {"col3" : "$..name", "type" : "VARCHAR(20)"},
                {"col4" : "$..dept", "type" : "VARCHAR(20)"}],
   "queryexpr" : [{"qrycol1" : "varchar(20)"},{"qrycol2" : "varchar(20)"}],
   "tables" : [
                {"jsonshred.Teradata_Employees" : { 
                "metadata" : { "operation" : "insert","keys" : ["empId"] },
                "columns" :  {"rowIndex" : "ROWINDEX",
                              "empId" : "col1+1000",
                              "empName" : "col3",
                              "jsonDocId" : "JSONID",
                              "company" : "col2",
                              "dept" : "col4",
                              "site" : "qrycol1",
                              "country" : "qrycol2" }
                             }
                }
              ]
   }]', LATIN), :res);
結果を確認するには、次を実行します: SELECT * from jsonshred.Teradata_Employees order by rowindex;
rowIndex   empId  empName      company      dept         jsonDocId  site    country
--------  ------  -----------  -----------  -----------  ---------  ------  -------
       0    1001  Cameron      Teradata     engineering          1  HYD     USA
       1    1002  Justin       Teradata     engineering          1  HYD     USA
       2    1003  Madhu        Teradata     engineering          2  HYD     USA
       3    1004  Srini        Teradata     engineering          2  HYD     USA