ttBulkCp

TimesTen表とASCIIファイル間でデータをコピーします。ttBulkCpには、次の2つのモードがあります:
  • コピーイン・モード(ttBulkCp -i)では、1つ以上のASCIIファイル(またはstdin)から、既存のTimesTen表に行がコピーされます。

  • コピーアウト・モード(ttBulkCp -o)では、TimesTen表全体が単一のASCII出力ファイル(またはstdout)にコピーされます。

UNIXおよびLinuxシステムでは、このユーティリティはTimesTen Data Manager DSNでサポートされます。クライアントDSNでは、ttBulkCpCSユーティリティを使用します。

ノート:

クライアント/サーバー・プロトコルにおけるリリース間互換性はTimesTenでサポートされていますが、ツールttBulkCpCSは、下位リリース互換性および上位リリース互換性がありません。したがって、同じバージョンのクライアント/サーバー接続にのみ使用可能です。

このユーティリティは、その実行者であるユーザーが所有するオブジェクトおよび所有者がSELECT権限を持っているオブジェクトのみコピー・アウトします。ユーティリティを実行している所有者がADMIN権限を持っている場合、ttBulkCpはすべてのオブジェクトをコピー・アウトします。

必要な権限

このユーティリティを使用するには、情報のコピー先となる表に対するINSERT権限が必要です。また、情報のコピー元となる表に対するSELECT権限が必要です。

接続文字列またはDSNに認証情報が指定されていない場合、続行する前にユーザーIDおよびパスワードの入力が求められます。

TimesTen ScaleoutおよびTimesTen Classicでの使用

このユーティリティは、TimesTen ClassicとTimesTen Scaleoutの両方でサポートされています。

構文

ttBulkCp {-h | -help | -? | -helpfull}

ttBulkCp {-V | -version}

ttBulkCp -i [-cp numTrans | final] [-d errLevel] 
[-e errorFile] [-m maxErrs] [-s c] [-t errLevel]
[-u errLevel] [-v 0|1] [-xp numRows | rollback] 
[-Cc | -Cnone] [-tformat timeFormat] [-tsformat timeStampFormat]
[-dformat | -D dateFormat] [-F firstRow] [-L lastRow] 
[-N ncharEncoding] [-Q 0|1] [-S errLevel] [-dateMode dateMode]
[-numThreads numthreads]
[-[no]tblLock] [-localOnly] {-connStr connection_string | DSN} 
[owner.]tableName [dataFile ...]

ttBulkCp -directLoad [-cp numTrans|final] [-d errLevel] [-e errorFile]
[-m maxErrs] [-s c] [-t errLevel] [-u errLevel]
[-v 0|1] [-xp numRows|rollback] [-Cc | -Cnone]
[-dformat formatStr] [-tformat formatStr]
[-tsformat formatStr] [-F firstRow] [-L lastRow]
[-N ncharEncoding] [-Q 0|1] [-S errLevel] [-dateMode mode]
{DSN | [-connstr] connection_string}
[owner.]tblName [dataFile ...]

ttBulkCp -o [-s c] [-v 0|1] [-A 0|1] [-Cc | -Cnone] 
[-nullFormat formatStr] [-localOnly]
[-tformat timeFormat] [-tsformat timeStampFormat] 
[-dateMode dateMode] [-dformat | -D dateFormat]
[-N ncharEncoding] [-noForceSerializable | -forceSerializable]
[-tsprec precision] [-Q 0|1] [-localOnly] 
{-connStr connection_string | DSN} [owner.]tblName 
[dataFile]

オプション

ttBulkCpには次のオプションがあります。

オプション 説明

-Cnone

-Cc

-Cnoneは出力ファイルでのコメントの使用を無効にします。-Ccは、デフォルトのコメント文字をcに設定します。デフォルトのコメント文字を指定しない場合、ポンド記号(#)が使用されます。-Cオプションの値は、\t(タブ)または~ ! @ # % ^ & * ( ) = : ; | < > ? , / のいずれかの文字をとります。このオプションはCOMMENTCHARファイル属性を上書きします。

-connStr connection_string

データベースの場所、ドライバ、および必要に応じてその他の接続属性設定を指定するODBC接続文字列。

DSN

コピーするデータベースのODBCデータソース名を指定します。

-D | -dformat

dateFormat

日付書式を設定します。サポートされている固定値のリストは、「固定の日付、時刻およびタイムスタンプ書式」を参照してください。このオプションはDFORMATファイル属性を上書きします。デフォルトはODBCです。

関連項目: -tformatおよび-tsformat

dataFile

コピーイン・モードでは、表に挿入する行を含む1つ以上のASCIIファイルのパス名を指定します。ファイルを指定しないと、標準入力が使用されます。単一のハイフン(-)は標準入力を意味します。

コピーアウト・モードでは、行のコピー先のファイルのパス名を指定します。ファイルを指定しないと、標準出力が使用されます。単一のハイフン(-)は標準出力を意味します。

-dateMode dateMode

ttBulkCpでOracle DatabaseのDATE型が日付(時間、分および秒フィールドなし)として扱われるか、タイムスタンプ(時間、分および秒フィールドあり)として扱われるかを指定します。

コピーイン・モードでは、入力のデフォルトの動作は日付です。

コピーアウト・モードでは、出力のデフォルトの動作はタイムスタンプです。

出力モードで-dateMode dateを選択した場合、1つ以上の日付列に12:00:00 am以外の時間コンポーネントが含まれていると、TimesTenはデータを切り捨て、警告を発行します。

このオプションはDATEMODEファイル属性を上書きします。

-directLoad

データをASCIIファイルからデータベース表にコピーするコピーイン・モードを選択します。ただし、直接接続を使用するクライアントでのみ使用できます。クライアント/サーバー接続を使用する際に必要なオーバーヘッドの一部が回避され、-iモードよりもパフォーマンスが向上します。TimesTen Classicでのみ使用できます。

-h -help

-?

使用方法についての短いメッセージを出力して終了します。

-helpfull

使用方法についての長いメッセージを出力して終了します。

-i

データをASCIIファイルからデータベース表にコピーするコピーイン・モードを選択します。直接接続またはクライアント/サーバー接続のいずれかを使用するクライアントで使用できます。

-localonly

このオプションは、特定のインスタンスの行のみをロードします。グリッドに特定のインスタンスをロードしてから、このオプションを使用します。このオプションを使用すると、ttBulkCPは表のすべての行を選択しますが、特定のインスタンスにハッシュされていない行は無視します。

このオプションは、TimesTen Scaleoutでのみサポートされます。

デフォルト値はNです。

-N ncharEncoding

NCHAR型の入力および出力に使用する文字エンコードを指定します。有効な値はUTF8UTF-8またはASCIIです。

-o

コピーアウト・モードを選択します。

owner

保存またはロードする表の所有者を指定します。ownerを省略すると、TimesTenは、まずユーザー名で、次にユーザー名SYSで表を検索します。このパラメータでは大/小文字は区別されません。

-Q [0 | 1]

文字列値を二重引用符で囲むかどうかを示します。

0 - 文字列を引用符で囲まないことを示します。このマニュアルでは、このモードのことを「引用符なしのモード」と呼びます。

1(デフォルト) - 文字列を引用符で囲むことを示し、このオプションはQUOTESファイル属性を上書きします。このマニュアルでは、このモードのことを「引用符付きのモード」と呼びます。

-s c

デフォルトのフィールド区切り文字をcに設定します。デフォルトのフィールド区切り文字を指定しない場合、カンマ(,)が使用されます。-sオプションの値は、\t(タブ)または~ ! @ # % ^ & * ( ) = : ; | < > ? , / のいずれかの文字をとります。このオプションはFSEPファイル属性を上書きします。

tableName

保存またはロードする表の名前を指定します。このパラメータでは大/小文字は区別されません。

-tformat

timeFormat

時刻書式を設定します。サポートされている固定値のリストは、「固定の日付、時刻およびタイムスタンプ書式」を参照してください。デフォルト値はODBCです。このオプションはTSFORMATファイル属性を上書きします。

関連項目: -D | -dformatおよび-tsformat

-tsformat

timestampFormat

タイムスタンプ書式を設定します。サポートされている固定値のリストは、「固定の日付、時刻およびタイムスタンプ書式」を参照してください。デフォルト値はDF*TF+FFで、これは、日付書式、時間書式および小数秒を連結したものです。このオプションはTFORMATファイル属性を上書きします。

関連項目: -D | -dformatおよび-tformat

-V | -version

ttBulkCpのリリース番号を出力し、終了します。

-v [0 | 1]

冗長レベルを設定します。

0 - Suppresses the summary.

1(デフォルト) - 完了時にコピーした行のサマリーを出力します。

次のオプションは、コピーアウト・モード(-o)でのみ使用します。指定した表に対するSELECT権限が必要です。

オプション 説明

-A [0 | 1]

ttBulkCpが出力ファイルの属性行を抑制するかどうかを示します。

0(デフォルト) - ttBulkCpは出力ファイルに属性行を書き出すことができます。

1 - 属性行の出力を抑制します。

-forceSerializable -noForceSerializable

-forceSerializableオプションは、DSNまたは接続文字列の設定にかかわらず、ttBulkCpでシリアライズ可能な分離が使用されることを示します。これは、デフォルトの動作です。

-noForceSerializableは、DSNまたは接続文字列の分離レベルがttBulkCpで使用されることを示します。

-noForceSerializableオプションを指定した場合に、DSNまたは接続文字列にシリアライズ可能でない分離モードが示されていると、次のような警告が出力に含まれます。

Warning: This output was produced using a
non-serializable isolation level. It may therefore not
reflect a transaction-consistent state of the table.

分離モードの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』「トランザクションの分離レベル」を参照してください。

-nullFormat formatStr

NULL値の出力書式を指定します。有効な値は次のとおりです:

null(デフォルト) - NULLのフィールドには、NULLという単語が出力されます。

empty - NULLのフィールドには何も出力されません。

空のLOBは、引用符なしのモードではNULLと出力され、引用符付きのモードでは" "と出力されます。これらをコピーすると、NULL" "のどちらもNULL LOBとして解釈されます。

-tsprec precision

-oオプションとともに使用した場合、タイムスタンプ値がprecisionに切り捨てられます。ttBulkCpでは、小数秒フィールドに最大6桁を入力できます。他のRDBMSを使用してタイムスタンプをコピーする場合、切捨てが必要な場合があります。

次のオプションは、コピーイン・モード(-i)およびダイレクトロード・モード(-directload)でのみ使用します。指定した表に対するINSERT権限が必要です。

オプション 説明

-cp numTrans

-cp final

コピーインのチェックポイント・ポリシーを設定します。

0の値は、コピー全体が完了した後にも、ttBulkCpはデータベースのチェックポイントを行わないことを示します。

0以外の値は、numTransトランザクションごとに、さらにコピー全体が完了した後に、ttBulkCpがデータベースのチェックポイントを行うことを示します。

finalの値は、コピー全体が完了した場合にのみttBulkCpがデータベースのチェックポイントを行うことを示します。

デフォルト値は0です。

定期的なコミットも有効になっている場合にのみ、定期的なチェックポイントを有効にできます。-xpオプションを参照してください。

ノート: このオプションは、TimesTen Scaleoutではサポートされません。

-d error

-d warn

-d ignore

デフォルトでは、ttBulkCpは、一意列や索引での制約違反が原因で拒否される行を、エラーとはみなしません。

-d error - 制約違反をエラーとみなすことを指定します。重複行は、maxErrs(-mを参照)に対してカウントされ、エラー・ファイル(-eを参照)に記録されます。

-d warn - ttBulkCpは問題の行をエラー・ファイルにコピーするが、エラーとしてはカウントしないことを指定します。

-d ignore(デフォルト) - ttBulkCpは重複行を暗黙的に無視することを指定します。

-dの設定にかかわらず、重複行は表に挿入されません。

-e errFile

エラーのためにTimesTen表にコピーできない行に関する情報を、ttBulkCpが記録するファイルの名前を示します。このようなエラーには、解析エラー、型変換エラーおよび制約違反が含まれます。errFileのデフォルト値はstderrです。エラー・ファイルの書式は入力ファイルの書式(「データ・ファイルの書式」を参照)と同じです。そのため、エラー・ファイルのエラーを修正し、修正されたエラー・ファイルをその後のttBulkCpの実行の入力ファイルとして使用することができます。

-F firstRow

コピーする最初の行の番号を示します。TimesTen表に行のサブセットをコピーするには、このオプションを(任意で-Lとともに)使用します。行には、1から始まる番号が付けられます。複数の入力ファイルを指定した場合、行には、すべてのファイルをとおした連続番号が付けられます。デフォルト値は1です。

-L lastRow

コピーする最後の行の番号を示します。-Fの説明を参照してください。0の値は最後の入力ファイルの最後の行を指定します。デフォルト値は0です。

-m maxErrors

レポートするエラーの最大数を指定します。

デフォルトは1です。

0 (ゼロ)に設定した場合、ttBulkCpによってすべてのエラー・メッセージが返されます。最大制限はありません。

-S error

-S warn

-S ignore

デフォルトでは、ttBulkCpによってその最大スケールを超える値が検出されると、エラーが発行されます。このエラーは、スケールがその列の最大スケールを超える10進値、または小数秒が6桁を超える(サブマイクロ秒の粒度)のTIMESTAMP値に対して発行されます。

-S error(デフォルト) - ttBulkCpがその最大スケールを超える値を含む行を表に挿入せず、エラーをエラー・ファイルに記録することを指定します。

-S warn - ttBulkCpが行を表に挿入する前に、その最大スケールまで値の右側を切り捨て、警告をエラー・ファイルに記録することを指定します。

-S ignore - ttBulkCpが行を表に挿入する前に、その最大スケールまで値の右側を暗黙的に切り捨てることを指定します。

-t error

-t warn

-t ignore

デフォルトでは、CHARVARCHAR2NCHARNVARCHAR2BINARYVARBINARYBLOBCLOBまたはNLOBの値がその最大列幅を超えている場合、ttBulkCpによってエラーが発行されます。

-t error(デフォルト) - 長い文字列やbinary属性を含む行はTimesTen表に挿入されず、エラーがエラー・ファイルに記録されることを指定します。

-t warn - 長い文字列やbinary属性は表に挿入される前に最大列長に切り捨てられるが、警告がエラー・ファイルに記録されることを指定します。

-t ignore - 長い文字列やbinary属性は、表に挿入される前に最大列長に暗黙的に切り捨てられることを指定します。

-[no]tblLock

TimesTen表に行をコピーする際に、表レベル・ロックを使用するか行レベル・ロックを使用するかを指定します。

-tblLock:表レベル・ロックを示します。これはデフォルトです。

-notblLock:行レベル・ロックを示します。

表への単一の入力ストリームの場合、-tblLockの使用が最も効率的です。複数の同時ttBulkCpセッションを使用して単一の表に並行して挿入する場合には、-notblLockを使用するとパフォーマンス面で利点があります。

-u error

-u warn

-u ignore

デフォルトでは、real、floatまたはdouble属性のアンダーフロー時に、ttBulkCpはエラーを発行します。アンダーフローは、浮動小数点数が非常に小さく、0(ゼロ)に切り捨てられる場合に発生します。

-u error(デフォルト) - アンダーフローしたreal、floatまたはdouble値を含む行はTimesTen表に挿入されず、エラーがエラー・ファイルに記録されることを指定します。

-u warn - アンダーフローしたreal、floatまたはdouble属性に0.0が挿入されるが、警告がエラー・ファイルに記録されることを指定します。

-u ignore - アンダーフローしたreal、floatまたはdouble属性に、暗黙的に0.0が挿入されることを指定します。

-xp numRows

-xp rollback

ロードのトランザクション・ポリシーを設定します。0の値は、ttBulkCpがロード全体を単一のトランザクションとして実行し、ロードの成功、失敗にかかわらず、そのトランザクションをコミットすることを示します。

rollbackの値は、ttBulkCpがロード全体を単一のトランザクションとして実行し、ロードが失敗した場合には、そのトランザクションをロールバックすることを示します。

0 (ゼロ)以外の値は、numRows行が処理されるたびにttBulkCpがコミットすることを示します。

デフォルト値は1024です。

データベースの定期的なチェックポイントを有効にするには、-xpオプションを-cpオプションとともに使用します。

データ・ファイルの書式

この項では、dataFileパラメータの書式について説明します。

ttBulkCp入力ファイルの各行は、空白行、コメント行、属性行またはデータ行のいずれかです。

  • 空白行とは、空白文字(スペースとタブ)を含む、文字がまったくない行のことです。空白行はttBulkCpによって無視されます。

  • コメント行はコメント文字で始まります。デフォルトのコメント文字は#です。このデフォルトは-Cコマンドライン・オプションまたはCOMMENTCHARファイル属性(「ファイル属性行の書式」を参照)で上書きできます。コメント文字は行の先頭文字である必要があります。コメント行はttBulkCpによって無視されます。データ行の最後にあるコメントは、サポートされません。

  • ファイル属性行は、データファイルの書式を制御するファイル属性の設定に使用されます。属性行は10文字からなる文字列##ttBulkCpで始まります。属性行の完全な構文については、「ファイル属性行の書式」の項を参照してください。属性行は、データファイルの任意の場所に記述できます。

  • データ行には、コピー元の表の行が含まれます。データファイルのデータ行と表の行は1対1で対応します(つまり各データ行は、1つの行を完全に記述します)。各データ行は、フィールド・セパレータ文字によって区切られた列値のリストで構成されます。デフォルトのフィールド・セパレータはカンマ(,)です。このデフォルトは、-sコマンドライン・オプションまたはFSEPファイル属性によって上書きできます。データ行の完全な構文については、「データ行の書式」の項を参照してください。

ファイル属性行の書式

属性行の書式は次のとおりです。

##ttBulkCp[:attribute=value]...

属性行は、コメント文字が#でない場合であっても、10文字からなる文字列##ttBulkCpで始まります。この文字列の後には、それぞれのファイル属性設定の前にコロンを付けて、0(ゼロ)または1つ以上の属性を指定できます。

ファイル属性設定が有効なのは、入力ファイルの終わりまで、または同じ入力ファイルで他の属性行によって変更されるまでです。属性行で省略されたファイル属性の値はそのままで変更されません。

ほとんどのコマンドライン・オプションは、ttBulkCpでサポートされるファイル属性の値よりも優先されます。CHARACTERSET属性は、コマンド・ライン・オプションを上書きできる唯一の属性です。

次のファイル属性があります。

  • CHARACTERSET: データファイルを解釈するために使用される文字セットを指定します。ファイル属性が設定されていない場合は、ConnectionCharacterSet接続属性で指定した文字セットがファイルの解釈に使用されます。最適なパフォーマンスを得るためには、DatabaseCharacterSet接続属性の値を、ConnectionCharacterSet接続属性またはこのファイル属性のいずれかと一致させます。ConnectionCharacterSet接続属性またはこのファイル属性で、ファイルの実際の文字セットとは異なる文字セットを指定すると、ttBulkCpはデータを正しく解釈できない場合があります。

  • VERSION: ファイルで使用されるファイル形式のバージョンを指定します(major.minorとして表されます)。サポートされるバージョンは1.0のみです。

  • DATEMODE: Oracle DatabaseのDATE型が日付として扱われるか、タイムスタンプとして扱われるかを指定します。

  • FSEP: ファイルで使用されるフィールド・セパレータ文字を指定します。フィールド・セパレータは、\t (タブ)、または ~ ! @ # $ % ^ & * ( ) = : ; | < > ? , /のいずれかの文字に設定できます。

  • QUOTES: ファイル内の文字列値が二重引用符で囲まれるかどうかを示します。0の値は文字列が引用符で囲まれないことを示し、1の値は文字列が引用符で囲まれることを示します。この値は-Qオプションで上書きされます。

  • COMMENTCHAR: ファイルで使用されるコメント文字を指定します。コメント文字は、\t (タブ)、または ~ ! @ # $ % ^ & * ( ) = : ; | < > ? , /のいずれかの文字に設定できます。

コメント文字は、データファイルでのコメントの使用を無効にする、値noneに設定することもできます。

  • DFORMAT: 日付書式を設定します。サポートされている値のリストは、「固定の日付、時刻およびタイムスタンプ書式」を参照してください。ユーザー定義の書式が使用されている場合は、一重引用符で囲む必要があります。この値は-D/-dformatコマンドライン・オプションで上書きされます。関連項目: TFORMATおよびTSFORMAT

  • NCHARENCODING: NCHARNVARCHAR2データ型に使用するエンコードを示します。値はASCIIまたはUTF-8です。

  • TFORMAT: 時刻書式を設定します。サポートされている値のリストは、「固定の日付、時刻およびタイムスタンプ書式」を参照してください。ユーザー定義の書式が使用されている場合は、一重引用符で囲む必要があります。この値は-tformatコマンドライン・オプションで上書きされます。関連項目: DFORMATおよびTSFORMAT

  • TSFORMAT: タイムスタンプ書式を設定します。サポートされている値のリストは、「固定の日付、時刻およびタイムスタンプ書式」を参照してください。ユーザー定義の書式が使用されている場合は、一重引用符で囲む必要があります。この値は-tsformatコマンドライン・オプションで上書きされます。関連項目: DFORMATおよびTFORMAT

次のヘッダー行はフィールド・セパレータ文字を$ に設定し、文字列を引用符で囲むことを無効にします。

##ttBulkCp:FSEP=$:QUOTES=0

次のヘッダー行はコメントを無効にし、日付書式をOracle書式に設定します。

##ttBulkCp:COMMENTCHAR=none:DFORMAT=Oracle

次のヘッダー行は、日付書式をカスタム書式に設定します。

##ttBulkCp:DFORMAT='Mon DD, YYYY'

データ行の書式

データ行には、コピー元の表の行データが含まれます。各データ行は表の行に対応します(行は複数の入力ファイル行にまたがることはできません)。データ行は、フィールド・セパレータ文字によって区切られる、列値のリストで構成されます。フィールド・セパレータの前後に、不要な空白文字を置くことはできません。それぞれの値の書式はその型によって決定されます。

NULL値

NULL値は、NULL(すべて大文字、引用符なし)、または空のフィールドとして表すことができます。

文字とUnicode文字列

CHARVARCHAR2NCHARNVARCHAR2CLOBNCLOB: 文字列を引用符で囲むことが有効になっている場合(デフォルト)、文字列および文字は二重引用符で囲む必要があります。文字列を引用符で囲むことが無効になっている場合、文字列の中の二重引用符文字はどれも文字列自体の一部であるとみなされ、文字列を引用符で囲むことが有効になっているかどうかにかかわらず、ttBulkCpでは文字列の中の次のバックスラッシュ・エスケープ文字が認識されます。

  • \": 二重引用符文字。文字列を引用符で囲むことが有効になっている場合、文字列のすべての二重引用符文字はバックスラッシュでエスケープされる必要があります。文字列を引用符で囲むことが無効になっている場合、バックスラッシュの使用は許容されますが、必要ではありません。

  • \t: タブ文字。

  • \n: 改行文字。

  • \r: 改行文字。

  • \\: バックスラッシュ文字。

  • \xyz (CHARVARCHAR2のみ): ASCII値がxyzである文字、xyzは、\033のような3文字の8進数です。

  • \uxyzw (NCHARNVARCHAR2のみ): Unicode値がxyzwである文字、xyzwは、\ufe4aのような4桁の16進数です。\uxyzw表記法はUTF-8ASCIIの両方のエンコード・モードでサポートされます。

また、~ ! @ # $ % ^ & * ( ) = : ; | < > ? , /文字のいずれもバックスラッシュでエスケープすることができます。多くの場合、これらの文字をエスケープする必要はありませんが、エスケープすると、文字列を引用符で囲むことが無効になっていても、コメント文字やフィールド・セパレータと解釈されるのを回避できます。

引用符で文字列を囲むことが有効になっている場合、空の文字列(" "として表される)はNULLと区別されます。引用符で文字列を囲むことが無効になっている場合、NULLと区別できないため、空の文字列を表すことはできません。

Unicode文字列の場合、UTF-8マルチバイト・シーケンスを使用してエンコードされるUnicode文字は、UTF-8エンコード・モードのみでサポートされます。これらのシーケンスがASCIIエンコード・モードで使用された場合、ttBulkCpはシーケンス内の各バイトを別々の文字として解釈します。

固定長のCHARNCHARフィールドの場合、フィールド長よりも短い文字列は空白で埋められます。VARCHAR2およびNVARCHAR2フィールドの場合、文字列はデータファイルに指定されているとおり正確にTimesTenに入力されます。後続の空白は追加も削除されません。

バイナリ値

BINARYVARBINARY, BLOB: 文字列を引用符で囲むことが有効になっている場合(デフォルト)、バイナリ値は中括弧({...})によって区切られます。文字列を引用符で囲むことが無効になっている場合、中括弧は使用されません。文字列を引用符で囲むことが有効か無効かにかかわらず、バイナリ値はオプションの0xまたは0Xで始めることができます。

バイナリ・データの各バイトは、2つの16進数として表されます。たとえば、次のような4バイトのバイナリ文字列があるとします。

01101000 11001010 01001001 11101111

このバイナリ文字列は、次の8文字の16進文字列として表されます。

68CA49EF

AからFの文字によって表される数字は、大文字でも小文字でもかまいません。16進文字列は空白を含むことができません。16進文字列の文字の各対が単一のバイナリ・バイトに変換されるため、16進文字列には偶数個の文字が含まれている必要があります。固定長バイナリ・フィールドでは、指定された値が列長よりも短い場合、値の右側に0(ゼロ)が埋め込まれます。VARBINARY値の場合、バイナリ値はデータファイルに指定されているとおり正確にTimesTenに挿入されます。

文字列を引用符で囲むことが有効になっている場合、長さが0(ゼロ)のバイナリ値({ }として表される)はNULLと区別されます。文字列を引用符で囲むことが無効になっている場合、NULLと区別できないため、長さが0(ゼロ)のバイナリ値を表すことはできません。

整数値

TINYINTSMALLINTINTEGERBIGINT: 整数値は、オプションの符号とその後に続く1つ以上の数字で構成されます。整数値では、E表記法は使用できません。例:

-14 98765 +186

浮動小数点値

REALFLOATDOUBLE: 浮動小数点値は小数点の有無にかかわらず表すことができ、E表記法を使用することもできます。例:

3.1415
-0.00004
1.1e-3
5e3
.56
-682
-.62E-4
170.

固定小数点値

DECIMALNUMERIC: 10進値は小数点の有無にかかわらず表すことができます。10進値ではE表記法を使用できません。例:

5
-19.5
-11
000
-.1234
45.
-57.0
0.8888

Inf、-InfおよびNaN値

Inf-InfおよびNan値: 無限大および数字以外の値は、文字列で表現して対応する定数値を表すことができます(すべて大/小文字は区別されません)。

文字列

NAN

NaN

[+]INF

Inf

-INF

-Inf

TimesTenでは、値がNANINFおよび-Infとして出力されます。

固定の日付、時刻およびタイムスタンプ書式

日付値の場合、固定書式は次のとおりです。

書式 説明

ODBC

YYYY-MM-DD

例: 2011-01-03

(デフォルト値)

Oracle

DD-Mon-YYYY

例: 03-Jan-2011

SYBASE1

MM/DD/YYYY

例: 01/03/2011

SYBASE2

DD-MM-YYYY

例: 03-01-2011

SYBASE3

Mon*DD*YYYY

例: Jan 03 2011

時刻値の場合、固定書式はODBCのみです。

書式 説明

ODBC

HH24:MI:SS

例: 07:47:23

タイムスタンプ値の場合、固定書式は次のとおりです。

書式 説明

ODBC

YYYY-MM-DD*HH24:MI:SS+FF

例: 2011-01-03 07:47:23

Oracle

DD-Mon-YYYY*HH24:MI:SS+FF

例: 03-Jan-2011 07:47:23

SYBASE1

MM/DD/YYYY*HH24:MI:SS+FF

例: 01/03/2011 07:47:23

SYBASE2

DD-MM-YYYY*HH24:MI:SS+FF

例: 03-01-2011 07:47:23

SYBASE3

Mon*DD*YYYY*HH24:MI:SS+FF

例: Jan 03 2011 07:47:23

デフォルトのタイムスタンプ値は、'DF*TF+FF'です

日付、時刻およびタイムスタンプの値

日付、時刻およびタイムスタンプの値は、固定日時書式を選択するか、カスタムの日時書式を定義することによって指定できます。カスタムの日時書式は、TO_DATEおよびTO_CHAR SQL関数で使用されるものに類似した書式指定子を使用して定義されます。

デフォルトのTimesTenの書式(DF*TF+FF)は日付および時刻書式に関して定義されているため、多くの場合、カスタムの日付または時刻書式が使用されている場合にもタイムスタンプ書式を定義する必要はありません。このため、日付書式を設定すると、日付値の書式のみでなく、タイムスタンプ値の日付部分も設定されます。同様に、タイムスタンプ書式を設定すると、時刻値とタイムスタンプ値の時刻部分の両方が影響を受けます。

指定子 説明および制限

Q

四半期。コピーイン・モードでは使用できません。

YYYY

年(4桁)。

Y,YYY

年(カンマ付き)。

YYY

年(末尾3桁)。コピーイン・モードでは使用できません。

Y

年(末尾1桁)。コピーイン・モードでは使用できません。

MONTH

月(空白が埋め込まれた9文字の正式名、大/小文字の区別なし)。

MON

月(3文字の接頭辞、大/小文字の区別なし)。

MM

月(01から12)。

DD

日付(01から31)。

HH24

時刻(00から23)。

HH12

時刻(01から12)。コピーイン・モードでは、AM/PMを指定する必要があります。

HH

時刻(01から12)。コピーイン・モードでは、AM/PMを指定する必要があります。

MI

分(00から59)。

SS

秒(00から59)。

FF

小数秒。6桁(-tsprecオプションで上書きされる場合を除く)。

FFn

小数秒(nで指定される桁数)。

+FF

コピーイン・モードでは、オプションの小数点に加えて、1つ以上の小数秒と一致します。コピーアウト・モードでは、.FFと同じです。

+FFn

コピーイン・モードでは、+FFと同じです。コピーアウト・モードでは、.FFnと同じです。

AM PM

ドットなしの正午標識。コピーイン・モードでは、HH24ではなく、HHまたはHH12とともに使用する必要があります。

A.M.

P.M.

ドット付きの正午標識。コピーイン・モードでは、HH24ではなく、HHまたはHH12とともに使用する必要があります。

DF

現在の日付書式(タイムスタンプ書式でのみ使用できます)。

TF

現在の時刻書式(タイムスタンプ書式でのみ使用できます)。

- / ; :

コピーイン・モードで一致するか、コピーアウト・モードで出力される記号。

"text"

入力モードで一致するか、コピーアウト・モードで出力されるテキスト。

*

コピーイン・モードで0個以上の空白文字(スペースまたはタブ)と一致するか、コピーアウト・モードで1つの空白を出力します。

次の入力ファイルは、5つの列(2つのCHAR列と、double列、integer列およびVARBINARY列を1つずつ)を持つ表のためのものです。Mountain View行には、最後の3つの列にNULL値が存在します。

##ttBulkCp
# This is a comment.
###### So is this.
# The following line is a blank line.

"New York","New York",-345.09,12,{12EF87A4E5}
"Milan","Italy",0,0,{0x458F}
"Paris","France",1.4E12,NULL,{F009}
"Tokyo","Japan",-4.5E-18,26,{0x00}
"Mountain View","California",,,

上記の入力ファイルと同等の入力ファイルを次に示します。このファイルでは、引用符が無効、コメント文字が「$」、フィールド・セパレータが「|」です。

##ttBulkCp:QUOTES=0:COMMENTCHAR=$:FSEP=|
$ This is a comment.
$$$$$$ So is this.
$ The following line is a blank line.

New York|New York|-345.09|12|12EF87A4E5
Milan|Italy|0|0|0x458F
Paris|France|1.4E12|NULL|F009
Tokyo|Japan|-4.5E-18|26|0x00
Mountain View|California|||

次のコマンドは、表mytblの内容をデータベースmystoreからファイルmytbl.dumpにダンプします。

% ttBulkCp -o mystore mytbl mytbl.dump

次のコマンドは、mytbl.dumpファイルにリストされている行を、データベースmystoremytblという表にロードします。エラー・メッセージは、mytbl.errファイルに格納されます。

% ttBulkCp -i -e mytbl.err mystore mytbl mytbl.dump

前述のコマンドは、最初のエラーの発生後に終了します。入力ファイルの終わりまで(または、リカバリ不能なエラーが発生するまで)コピーを続行させるには、次のように-m 0を使用します。

% ttBulkCp -i -e mytbl.err -m 0 mystore mytbl mytbl.dump

制約違反によって発生するエラーを無視するには、つぎのように-d ignoreを使用します。

% ttBulkCp -i -e mytbl.err -d ignore mystore mytbl mytbl.dump

ノート

データベースの不慮の破損を防ぐため、ttBulkCpではOverwrite接続属性は明示的に0に設定されます。詳細は、「Overwrite」を参照してください。

浮動小数点数が小さい場合、real、floatまたはdoubleの値は0(ゼロ)に切り捨てられる場合があります。

このユーティリティでは、0以外の値を指定したPassThrough接続属性はサポートされていないため、0以外の値を指定するとエラーが返されます。

日付、時刻およびタイムスタンプの書式を設定する場合、入力モードでは不完全または冗長な書式は使用できません。データ型に存在しないフィールド(日付書式の分の指定子など)を参照すると、コピーアウト・モードではエラーを返します。コピーイン・モードでは、それらの指定子の値は無視されます。

ttBulkCpデータファイル内の引用符で囲まれた文字列を無効にする場合は、次の注意事項が適用されます。

  • NULLと区別できないため、空の文字列と長さが0(ゼロ)のバイナリ値は表すことができません。

  • フィールド・セパレータ文字が文字列にある場合は、バックスラッシュでエスケープさせる必要があります。そうしないと、実際のフィールド・セパレータとして扱われます。

  • データ行が文字列で始まり、その文字列がコメント文字で始まる場合、その文字をバックスラッシュでエスケープさせないと、その行はコメントとして扱われます。ファイル内に実際のコメントがない場合、コメント文字をnoneに設定して文字がコメント文字として誤読されないようにします。

UTF-8の場合、NCHARUTF-8エンコードに変換されてから出力されます。UTF-8入力はNCHARに変換されます。

ASCIIの場合、ASCII文字に対応するNCHAR値はASCIIとして出力されます。ASCII以外のNCHAR値では、エスケープされたUnicode書式が使用されます。

このユーティリティは、TimesTen表で特に使用されます。Oracle Databaseへのパススルーではサポートされていません。

Windowsでは、すべてのTimesTen Data ManagerおよびクライアントDSNで、このユーティリティがサポートされています。

アプリケーションのロックの競合問題を回避するために、ttBulkCp実行中はDDL SQLを実行しないことをお薦めします。