ドット表記を使用したDATASETデータへのアクセス - Teradata Database - Teradata Vantage NewSQL Engine - DATASETデータ型にドット表記を使用します。

Teradata Vantage™ DATASETデータ型

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/pgs1512082344257.ditamap
dita:ditavalPath
ja-JP/pgs1512082344257.ditaval
dita:id
B035-1198
Product Category
Software
Teradata Vantage
これはDATASETデータ型に対してドット表記を使用する方法の簡単な概要です。ここではDATASETに関連するドット表記について説明します。ドット表記の詳細については、<Teradata JSON>を参照してください。
ドット表記はJSONPath構文の以下のメンバーをサポートしています。
  • 再帰下降演算子(..)
  • ワイルドカード(*) ― 名前付きアイテムとインデックス アイテムの両方を参照
  • 名前/インデックス リスト([a,b,c]または[0,3,5])
  • 名前/インデックス スライス([c]または[5])

これらの項目はJSONデータ型とDATASETデータ型の両方で使用されます。以下の例とルールでは、SELECTリストとWHERE句でこれらの新しい構文を使用しています。JSONPath構文には、JSONPath式やJSONPathフィルタなど、DATASET型によってサポートされていない部分がある点に注意してください。

DATASETデータ型に対するドット表記式の戻り値はデフォルトでVARCHARです。参照されているDATASET型が列レベルでスキーマが定義されているテーブルの列である場合、予想されるデータ型はスキーマから推測され、可能であれば式の戻り型として使用されます。それが可能でないシナリオもあります。例えば、ドット表記式が複数の異なるデータ型を持つ1つのレコードの複数の子を取り出す場合がそのシナリオに相当します。
SELECT column.record[childA, childB, childC];

次のテーブルは、このマニュアル全体のAVRO格納形式の例で参照されます。

CREATE TABLE myAVROTable09(
	id INTEGER,
	avroFile DATASET STORAGE FORMAT Avro);

avroFiles09.txt
avro09.data|1

avro09.data
7B2274797065223A227265636F7264222C226E616D65223A227265635F30222C226669656C6473223A5B7B226E616D65223A2253616C65222C2274797065223A7B2274797065223A227265636F7264222C226E616D65223A227265635F31222C226669656C6473223A5B7B226E616D65223A224974656D5F4944222C2274797065223A22696E74227D2C7B226E616D65223A224974656D5F4E616D65222C2274797065223A22737472696E67227D2C7B226E616D65223A224974656D5F436F6C6F72222C2274797065223A22737472696E67227D2C7B226E616D65223A224974656D5F5374796C65222C2274797065223A22737472696E67227D2C7B226E616D65223A225175616E746974795F507572636861736564222C2274797065223A22696E74227D2C7B226E616D65223A224974656D5F5072696365222C2274797065223A22646F75626C65227D2C7B226E616D65223A22546F74616C5F5072696365222C2274797065223A22646F75626C65227D5D7D7D5D7D006E0E62696379636C650672656408626F79730200000000000059400000000000005940

.import vartext file avroFiles09.txt
USING (c1 BLOB as deferred by name, c2 INTEGER)
INSERT INTO myAVROTable09(:c2,:c1);
CSV格納形式を使用している場合は、例の中で、AVROをCSVに置き換えてください。
CREATE TABLE myCSVTable09(
	id INTEGER,
	csvFile DATASET STORAGE FORMAT CSV);

csvFiles09.txt
csv09.data|1

csv09.data
ItemNum,ItemName,Quantity,Price
10,Basketball,15,24.99
20,Shovel,9,7.99
30,Paint Brush,10,3.99

.import vartext file csvFiles09.txt
USING (c1 CLOB as deferred by name, c2 INTEGER)
INSERT INTO myCSVTable09(:c2,:c1);