入力データを準備する - Amazon Redshift

入力データを準備する

入力データとそれを受け取るテーブル列の間に互換性がない場合、COPY コマンドは失敗します。

次の指針を利用し、入力データの妥当性を確認してください。

  • データには最大 4 バイトの UTF-8 文字のみを含めることができます。

  • CHAR 文字列と VARCHAR 文字列がそれに対応する列の長さを超えないことを確認してください。VARCHAR 文字列は文字数ではなく、バイト数でカウントされます。そのため、例えば、4 バイトを使う漢字が 4 文字集まった文字列は VARCHAR(16) 列を必要とします。

  • マルチバイト文字は VARCHAR 列との連動でのみ使用できます。マルチバイト文字が 4 バイトを超えないことを確認します。

  • CHAR 列のデータにシングルバイトの文字のみが含まれることを確認します。

  • レコードの最後のフィールドを示すために特殊な文字や構文を含めないでください。このフィールドは区切り文字にすることができます。

  • NUL (UTF-8 0000) またはバイナリゼロ (0x000) とも呼ばれる null ターミネーターをデータに含める場合、これらの文字は NULLS として CHAR 列または VARCHAR 列にロードすることができます。その際、COPY コマンドでは NULL AS オプションを使用します (null as '\0' または null as '\000')。NULL AS を使用しない場合、null ターミネーターが原因となり、COPY が失敗します。

  • 文字列に、区切り文字や埋め込み改行など、特殊文字が含まれる場合、COPY コマンドとともに ESCAPE オプションを使用します。

  • 一重引用符と二重引用符がすべて適切に一致していることを確認してください。

  • 浮動小数点の文字列が 12.123 のような標準浮動小数点形式と 1.0E4 のような指数形式のいずれかになっていることを確認してください。

  • すべてのタイムスタンプおよび日付文字列が DATEFORMAT と TIMEFORMAT の文字列 の仕様に従っていることを確認してください。デフォルトのタイムスタンプ形式は YYYY-MM-DD hh:mm:ss であり、デフォルトの日付形式は YYYY-MM-DD です。

  • 個々のデータ型の制約に関する詳細は、「データ型」を参照してください。マルチバイト文字のエラーに関する詳細は、「マルチバイト文字のロードエラー」を参照してください。