この例では、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