例: JSON_SHRED_BATCHを使用して、JSONオブジェクトからテーブルを更新 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - JSONデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/uwa1591040057999.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
evi1472243742653
Product Category
Software
Teradata Vantage

この例では、JSON_SHRED_BATCH Update操作を使用して、JSONインスタンスからテーブルを更新します。

3名の従業員の実際の開始日付となる新しいデータが入力されると仮定します(以前デフォルトの値をテーブルに取り込みました)。以下のクエリーを含むJSON_SHRED_BATCHを使用してその特定の値を更新できます。
この例を実行する前に、ソース テーブル(json_table)に対してSELECT権限があること、およびターゲット テーブル(emp_table)に対してUPDATE権限があることを確認します。
CALL SYSLIB.JSON_SHRED_BATCH(
'SELECT id, empCompanyInfo FROM test.json_table',
'[ 
  { 
   "rowexpr" : "$.startDates.info[*]",
   "colexpr" : [
     {"col1" : "$.id",
      "type" : "INTEGER"},
     {"col2" : "$.startDates.company",
      "type" : "VARCHAR(15)",
      "fromRoot" : true},
     {"col3" : "$.startDate",
      "type" : "VARCHAR(20)"}
 ],			
 "tables" : [
   {
    "test.emp_table" : { 
      "metadata" : { 
        "operation" : "update",
        "keys" : [ "empID", "company" ]	
      },
      "columns" : { "empID" : "col1*100",
        "company" : "col2",
        "startDate" : "col3" }
      }
    }
   ]
  }
 ]', :res );
結果: employeeテーブルで更新されたデータを表示するには次を実行します。SELECT empID, company, empName, empAge, startDate, site FROM emp_table ORDER BY empID;
empID company	empName  empAge  startDate site
----------------------------------------------
100   Teradata  Cameron  24      15/02/10  RB
200   Teradata  Justin   34      15/02/07  RB
300   Teradata  Melissa  24      15/02/07  RB