入力値の指定 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
ft:locale
ja-JP
ft:lastEdition
2021-09-23
dita:mapPath
ja-JP/amv1590702100517.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1198
Product Category
Software
Teradata Vantage

ON句で指定された最初の入力値は、文字ベース(例えば、CHAR/VARCHAR/CLOB値またはDATASET STORAGE FORMAT CSV値)でなければならず、指定されたフォーマットに適合するデータで構成されている必要があります(つまり、指定されたフィールド/レコード区切り記号を使用しているか、またはそれが指定されていない場合はデフォルトです)。後続の入力値は、AvroまたはJSONへの変換の結果に影響しませんが、テーブル演算子を通じて渡され、追加の出力列として指定されます。これにより、生成されたAvroまたはJSONドキュメントをソースCSVデータに関連付けることができます。このことは複数のCSV入力を変換する際に非常に重要です。

CT my_table(id int, csvData VARCHAR(500));
INSERT INTO my_table(1, 'a,b,c,d,e,f\1,2,3,4,5,6\7,8,9,10,11,12');
INSERT INTO my_table(2, 'a,b,c,d,e,f\13,14,15,16,17,18
\19,20,21,22,23,24');
INSERT INTO my_table(3, 'a,b,c,d,e,f\25,26,27,28,29,30
\31,32,33,34,35,36');

SELECT id, data.toJSON() FROM CSV_TO_AVRO
(
    ON (SELECT csvData, id FROM my_table)
    USING SCHEMA('{"record_delimiter":"\\"}')
) as csvAvro
ORDER BY id, data.a;

         id data.TOJSON()
----------- --------------------------------------------------------------
          1 {"a":"1","b":"2","c":"3","d":"4","e":"5","f":"6"}
          1 {"a":"7","b":"8","c":"9","d":"10","e":"11","f":"12"}
          2 {"a":"13","b":"14","c":"15","d":"16","e":"17","f":"18"}
          2 {"a":"19","b":"20","c":"21","d":"22","e":"23","f":"24"}
          3 {"a":"25","b":"26","c":"27","d":"28","e":"29","f":"30"}
          3 {"a":"31","b":"32","c":"33","d":"34","e":"35","f":"36"}