17.10 - 例: CSVのスキーマの使用 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1198-171K-JPN
Language
日本語 (日本)

次の例には、いくつかのオプションのパラメータに基づく属性が含まれています。

{
      "field_names" : <JSON array with column names >,
      "field_delimiter" : <field_delimiter_character>,
      "record_delimiter" : <record_delimiter_character>
}

スキーマの別の例:

{
      "field_names" : ["name","dob","phone","address"],
      "field_delimiter" : ",",
      "record_delimiter" : "\r\n"
}

field_names、field_delimiter、およびrecord_delimiterのキー名は、正しく解釈されるように正確に指定する必要があることに注意してください。名前の大文字と小文字は区別されます。

このスキーマ形式を使用してCSVデータのヘッダーを指定する場合、次の3つのオプションがあります。
  1. field_namesのキーと値のペアは省略されます。これにより、CSVデータにヘッダー レコードが存在することがデータベースに伝えます。
  2. field_namesのキーと値のペアは含まれていますが、その値はJSONのNULLです。これはCSVデータにヘッダーが含まれておらず、提供されないことをデータベースに伝えます。この場合、データベースはCSVファイルのフィールド名を次の形式に従って自動的に生成します。
    csv_fld1, csv_fld2, csv_fld3, ... , csv_fldN
  3. field_namesのキーと値のペアが含まれ、その値は文字列のJSON配列です。これはCSVデータにヘッダーが含まれておらず、このスキーマを使用してフィールドの名前を指定することをデータベースに伝えます。

スキーマに基づくと、データは文字セットであり、フィールドはfield_delimiterで区切られ、レコードはrecord_delimiterで区切られます。以下の例は、フィールド区切り記号が'&'、レコード区切り記号が'#'、そしてヘッダー行を含んでいるCSVデータを示しています。

スキーマ

{
      "field_delimiter" : "&",
      "record_delimiter" : "#"
}

データ

Item ID&Item Name&Item Color&Item Style&Quantity Purchased&Item Price&Total Price#55&bicycle&red&boys&1&100.00&100.00#88&toy boat&pink&&1&15.10&15.10#105&soap&&&1&0.99&0.99