次の表に、INSERT文を使用する場合の考慮事項を記載します。
対象 | 使用上の注意 |
---|---|
ANSI/SQL DateTime指定 | Teradata SQLのCREATE TABLE文ではANSI/SQLのDATE、TIME、TIMESTAMP、およびINTERVALのDateTimeデータ型を使用でき、INSERT文の中で列/フィールド修飾子として指定できます。FIELDコマンドで列/フィールド名を指定する場合には、そのデータ型を固定長CHARデータ型に変換する必要があります。 |
オブジェクトの制限 | INSERT文に指定できるtnameオブジェクトは1つだけで、BEGIN MLOADコマンドのターゲット オブジェクトとして事前に定義されている必要があります。 tnameオブジェクトがビューの場合、結合が指定されたビューは使用できません。Teradata MultiLoadは単一表のコマンドに対してのみ動作するため、INSERT文に結合を含むことはできません。 |
必要な権限 | INSERT文を使用するためには、tnameの表またはビューに対するINSERT権限が必要です。 |
適用可能なDML文の指定 | 適切なDML文を指定する1つの方法は、各フィールド名を、フィールドのデータが適用される列の名前と関連させることです。 別の方法は、データベースに送られるレコードの最初の非フィラー フィールドを相手表の最初の列に、2番目の非フィラー フィールドを2番目の列に順番に適用する方法です。 どちらの方法でも、明示的またはデフォルトを使用してすべての列に値を指定する必要があります。 |
Unicodeデータの使用 | 以下のセッションのUnicodeデータを使用する場合には、tname.*バージョンのINSERT文は使用しないでください。
上記の指定を行なうと、参照する表からフィールド名が返され、さらに、後続のロード操作用のUSING句を作成するためにTeradata MultiLoadが内的に使用するバイト/文字数が返されます。 クライアント システムとデータベースの間でCHARとVARCHARのデータをインポートおよびエクスポートするとバイト数と文字数の変換が行なわれるため、内部生成されるUSING句では入力データ ストリームの構造が正しく反映されません。 |