Example: JSON_SHRED_BATCH Extracts from a JSON Object and Inserts into a Table - Teradata Vantage NewSQL Engine - 16.20

Teradata Vantageā„¢ JSON Data Type

Teradata Database
Teradata Vantage NewSQL Engine
Programming Reference
The example populates a table using a JSON instance as the source data. The example shreds the JSON document to extract values from it and inserts the data into the employee table (emp_table).
Before running this example, make sure you have SELECT privilege on the source table ( json_table) and INSERT privilege on the target table (emp_table).
'SELECT id, empPersonalInfo, site 
   FROM test.json_table',
   '[{"rowexpr" : "$.employees.info[*]",
      "colexpr" : [{"col1" : "$.id",
                    "type" : "INTEGER"},
                   {"col2" : "$.employees.company",
                    "type" : "VARCHAR(15)",
                    "fromRoot" : true},
                   {"col3" : "$.name",
                    "type" : "VARCHAR(20)"},
                   {"col4" : "$.age",
                    "type" : "INTEGER"},
                   {"col5" : "$.dept",
                    "type" : "VARCHAR(10)"}],
      "queryexpr" : [{"site" : "VARCHAR(20)"}],
      "tables" : [
        {"test.emp_table" : {
           "metadata" : { 
             "operation" : "insert" 
           "columns" : {"empID" : "col1*100",
                      "company" : "col2",
                      "empName" : "col3",
                      "empAge" : "col4",
                      "dept" : "col5",
                      "startDate" : "CURRENT_DATE",
                      "site" : "site" }
   }]', :res );

The result of the shred populates the emp_table table with three rows, corresponding to the three items in the JSON object used as source data.

To see the result, run: SELECT empID, company, empName, empAge, startDate, site FROM emp_table ORDER BY empID;
empID company   empName  empAge	startDate site
100   Teradata  Cameron  24     13/09/19  RB
200   Teradata  Justin   34     13/09/19  RB
300   Teradata  Melissa  24     13/09/19  RB