ttBulkCp 用于在 TimesTen 表和平面文件之间导入和导出数据。

语法

ttBulkCp {-i | -o}[Options [...]]  {DSN | {[-connstr] ConnectionString}}[Owner.]TableName [[DataFile
[...]]

-i:将一个或多个平面文件中的数据导入一个表中(copy-in 模式)。可以指定多个数据文件。

-o:将一个表中的数据导出到一个平面文件(copy-out 模式)。如果未指定 DataFile 或者在 DataFile 位置指定了一个连字符,则在 copy-in模式下会使用 stdin,在 copy-out 模式下会使用 stdout。
选项

-A {0 | 1}:指出是否应禁止在数据文件中显示属性行(默认值:0(将属性行写入到数据文件中))。此选项仅在 copy-out 模式下有效。

-C{CommentCharacter |none}:指定用一对双引号分隔的数据文件注释字符(CommentCharacter),或禁止在数据文件中使用注释(none)。此选项会覆盖COMMENTCHAR 文件属性。要指定注释,该行的第一个字符必须是注释字符。有效值包括\t ~ ! @ # % ^ & * ( ) = : ; | < > ? , /(默认值:#(井号字符))。

-cp {NumberOfTransactions| final}:设置检查点频率。可以在加载了每一批指定数量的事务处理后及在加载操作结束时发出检查点操作(NumberOfTransactions),也可以仅在加载操作结束时发出检查点操作 (final),或者根本不发出检查点操作(0)(默认值:0(即使加载操作完成,也不发出检查点操作))。–cp 选项必须与 -xp 选项一起使用。此选项仅在copy-in 模式下有效。

-D DateFormat:指定日期值的格式(默认值:ODBC)。此选项会覆盖 DFORMAT 文件属性。DateFormat 可设置为:

  • ODBC (YYYY-MM-DD)
  • Oracle (DD-MON-YYYY)
  • SYBASE1 (MM/DD/YYYY)
  • SYBASE2 (DD-MM-YYYY)
  • SYBASE3 (MON DD YYYY)
  • 采用日期格式字符的定制格式


-d {error | warn | ignore}
:确定如何处理其数据违反了唯一列或唯一索引的约束条件的那些行(默认值:ignore)。此选项仅在 copy-in 模式下有效。

error 表示针对 -m 选项的<MaximumErrors> 值计算违反约束条件的次数,并在-e 选项的<ErrorFile> 中报告。

warn 表示在 -e 选项的 ErrorFile 中报告约束条件违例数。

ignore 表示不报告约束条件违例数。

不管 -d 选项如何设置,都不会在表中插入重复的行。

-dformat DateFormat
指定日期值的格式(默认值:ODBC)。此选项会覆盖DFORMAT 文件属性。DateFormat 可设置为:

  • ODBC (YYYY-MM-DD)
  • Oracle (DD-MON-YYYY)
  • SYBASE1 (MM/DD/YYYY)
  • SYBASE2 (DD-MM-YYYY)
  • SYBASE3 (MON DD YYYY)
  • 采用日期格式字符的定制格式

-e ErrorFile:指定用于记录语法分析错误、类型转换错误和约束条件违例数等错误消息的文件(默认值:stderr)。错误文件的格式与数据文件的格式相同。可以对错误文件进行更正,然后将该文件用作 ttBulkCp 输入数据文件。此选项仅在 copy-in 模式下有效。

-F FirstRow:指定要加载的第一行的行号(默认值:1(第一个输入文件的第一行))。此选项仅在 copy-in 模式下有效。

-forceSerializable:指定使用可串行化隔离,不考虑 Isolation DSN 属性的设置(默认值)。

-L LastRow:指定要加载的最后一行的行号(默认值:0(最后一个输入文件的最后一行))。此选项仅在 copy-in 模式下有效。

-m MaximumErrors:设置允许的最大错误数(默认值:10)。此选项仅在 copy-in 模式下有效。

-N nCharEncoding:指定 NCHAR 和 NVARCHAR[2] 值的 Unicode 字符编码。此选项会覆盖 NCHARENCODING文件属性。nCharEncoding 可设置为 ASCII 或 UTF-8(默认值:UTF-8)。

-noForceSerializable:指定使用 Isolation DSN 属性中设定的隔离级别。
-Q {0 | 1}:指出在数据文件中,是用一对双引号来分隔 CHAR、NCHAR、VARCHAR[2]和 NVARCHAR[2] 值,用一对{} 括号来分隔 BINARY 和 VARBINARY 值,还是根本不进行分隔。此选项会覆盖 QUOTES文件属性(默认值1(用一对双引号或大括号分隔))。

-S {error | warn | ignore}:确定如何处理包含的 TT_DECIMAL、ORA_DATE 或TT_TIMESTAMP值超过其最大位数的那些行(默认值:error)。此选项仅在 copy-in模式下有效。

error 表示最大位数溢出值将计入 -m 选项的MaximumErrors 值,同时还在 -e 选项的ErrorFile 中进行报告,而该行不会插入到表中。

warn 表示将在 –e 选项的 ErrorFile中报告最大位数溢出值,而该行在截断值末尾数字之后插入到表中,可防止位数溢出。

ignore 表示不报告最大位数溢出值,而该行在截断值末尾数字之后插入到表中,可防止位数溢出。

–s”FieldSeparatorCharacter”:指定用一对双引号分隔的数据文件字段分隔符。此选项将覆盖 FSEP 文件属性。有效值包括 \t ~ ! @ # % ^ & *( ) = : ; | < > ? , /(默认值:,(逗号))。

-t {error | warn | ignore}:确定如何处理包含的字符串值超过了 CHAR、NCHAR、VARCHAR[2] 或 NVARCHAR[2] 列的长度或包含的二进制值超过了BINARY 或VARBINARY 列的长度的那些行(默认值:error)。此选项仅在 copy-in 模式下有效。

error 表示长字符串值或二进制值将计入 -m选项的 MaximumErrors 值,同时在 -e 选项的 ErrorFile 中进行报告,而该行不会插入到表中。

warn 表示在 –e 选项的 ErrorFile中报告长字符串值或二进制值,而该行在截断未尾字符或数字之后插入到表中,使字符串值或二进制值的长度适应相应列。

ignore 表示不报告长字符串或二进制值,而该行在截断末尾字符或数字之后插入到表中,使字符串值或二进制值的长度适合相应列。

-tformat TimeFormat:指定时间值的格式(默认值:ODBC)。此选项将覆盖TFORMAT 文件属性。TimeFormat 可设置为:

  • ODBC (HH24:MI:SS)
  • 采用时间格式字符的定制格式

-tsformat TimestampFormat:指定时间戳值的格式(默认值:ODBC)。此选项将覆盖 TSFORMAT 文件属性。TimestampFormat 可设置为:

  • ODBC (YYYY-MM-DD HH24:MI:SS.FF)
  • Oracle (DD-MON-YYYY HH24:MI:SS.FF)
  • SYBASE1 (MM/DD/YYYY HH24:MI:SS.FF)
  • SYBASE2 (DD-MM-YYYY HH24:MI:SS.FF)
  • SYBASE3 (MON DD YYYY HH24:MI:SS.FF)
  • 采用时间戳格式字符的定制格式

-tsprec Precision:将时间戳值中的小数部分截断到 Precision 位(默认值:6)。在将时间戳值复制为其它 RDBMS 格式的值时,可能需要截断。此选项仅在copy-out 模式下有效。

-u {error | warn | ignore}:确定如何处理包含的 ORA_FLOAT、BINARY_FLOAT、BINARY_DOUBLE、REAL 或 DOUBLE值导致下溢的那些行(默认值:error)。此选项仅在 copy-in 模式下有效。

error 表示下溢值将计入 -m 选项的MaximumErrors 值,还会在 -e 选项的 ErrorFile中进行报告,而该行不会插入到表中。

warn 表示在 -e 选项的 ErrorFile 中报告下溢值,而该行会插入到表且下溢列的值为 0.0。

ignore 表示不报告下溢值,而该行会插入到表中且下溢列的值为 0.0。

-v VerbosityLevel:指出应显示概要 (1) 还是禁止显示概要 (0)(默认值:1(操作完成后显示所复制行的概要))

-xp {NumberOfRows |rollback}:设置事务处理提交频率。可以在成功加载了指定数量的行后发出提交(NumberOfRows),可以仅在完成加载操作(不论是成功还是失败,因而在一个事务处理中执行整个加载)时发出提交(0),还可以在加载失败时回退整个加载操作 (rollback)(默认值:1000)。此选项仅在 copy-in 模式下有效。

–D、-dformat、-tformat 和 –tsformat 选项的格式字符串元素:

Q(季度;仅在 copy-out 模式下有效)
YYYY(年份,四位数字)
Y,YYY(年份,四位数字,在第一位数字后有一个逗号)
YYY(年份,最后三位数字;仅在 copy-out 模式下有效)
YY(年份,最后两位数字)
Y(年份,最后一位数字;仅在 copy-out 模式下有效)
MM(月份,范围 01 到 12)
MON(月份缩写,由三个字符组成,不区分大小写)
MONTH(月份的完整名称,总共 9 个字符,不足 9 个字符时用空格补齐,不区分大小写)
DD(一个月中的日期,范围 01 到 31)
HH(小时,范围 01 到 12,在 copy-in 模式下必须与 AM、A.M.、PM 或 P.M.一起使用)
HH12(小时,范围 01 到 12,在 copy-in 模式下必须与 AM、A.M.、PM 或 P.M.一起使用)
HH24(小时,范围 00 到 23)
MI(分钟,范围 00 到 59)
SS(秒,范围 00 到 59)
FF(零点几秒,除非被 -tsprec 选项覆盖,否则为 6 位数字)
FFn(零点几秒,有 n 位数)
+FF(在 copy-in 模式下包含可选的小数点,后面加上一个或多个零点几秒;在 copy-out 模
式下与 .FF 相同)
+FFn(在 copy-in 模式下与 +FF 相同;在 copy-out 模式下与 .FFn 相同)
AM(不带点的上午标志)
A.M.(带点的上午标志)
PM(不带点的下午标志)
P.M.(带点的下午标志)
DF(当前日期格式;只能在时间戳格式中使用)
TF(当前时间格式;只能在时间戳格式中使用)
- / ; :(用于分隔日期或时间字段的标点符号)
“text”(要在 copy-in 模式下匹配的文本或者在 copy-out 模式下输出的文本)
*(在 copy-in 模式下为 0 或多个空格字符;在 copy-out 模式下为 1 个空格字符)

数据文件的内容

ttBulkCp
数据文件中的行包括空白行(根本没有字符,连空格字符都没有)、注释行、属性行或数据行。此文件中的每个数据行对应于表中的一行,其中包含由字段分隔符分隔的列值。表中的一个数据行不能跨此文件中的多个行。在字段分隔符的前后不应放置不属于数据的空格字符。


数据行注意事项

  • TT_TINYINT/TT_SMALLINT/TT_INTEGER/TT_BIGINT:整数值由一个可选符号(TT_TINYINT 值除外)加上一个或多个数字组成。整数值不能使用科学记数法。
  • ORA_FLOAT/BINARY_FLOAT/BINARY_DOUBLE/REAL/DOUBLE:浮点值可以带小数点,也可以不带小数点,并且可以使用科学记数法。
  • TT_DECIMAL:定点值可以带小数点,也可以不带小数点,并且不能使用科学记数法。
  • CHAR/NCHAR/VARCHAR[2]/NVARCHAR[2]:如果字符串未用引号括起来,则该字符串中的任何双引号字符都会被视为该字符串的一部分。可以通过反斜杠 (\)对字符进行转义,使这些字符按字面意义解释,而不会被错误地视为字段分隔符、注释或引号字符。CHAR 和 VARCHAR[2] 数据可以包含用\xyz 格式指定的值,其中xyz 是一个由三位数字组成的八进制 ASCII 值。NCHAR 和 NVARCHAR[2] 数据可以包含用\wxyz 格式指定的值,其中 wxyz 是一个由四位数字组成的十六进制Unicode 值。如果字符串用引号括起来,则可以用 (”")
    表示空字符串。空字符串与NULL 值是不同的。对于 CHAR 和 NCHAR 列,字符串的长度短于列长度时,可以用末尾空格来补齐。
  • BINARY/VARBINARY:如果将二进制值括起来,则必须用大括号加以分隔。一个字节的二进制数据表示为两个十六进制数字。十六进制字符串不能包含空格字符,且所包含的字符数必须是偶数。如果将二进制值括起来,则可以用 ({}) 表示长度为零的值。该值与 NULL值是不同的。对于 BINARY 列,字符串的长度短于列长度时,可以用末尾零来补齐。
  • NULL 值:该值表示为 NULL(全部大写,无引号)或空字段。

数据文件属性行

数据文件可以包含用于指定数据行格式的属性行。一个属性行的有效范围是从该属性行在数据文件中出现的位置起到该文件的末尾,或者到出现另一个属性行。属性行的内容区分大小写。

属性行的格式
##ttBulkCp[:attribute=value][...]

有效属性

  • VERSION:指定表示为 major.minor 形式的文件格式版本。当前仅支持1.0 版本。
  • FSEP:指定字段分隔符。它可以由 -s 选项覆盖。请参阅 -s 选项,了解有效的分隔符(默认值:, [逗号])。
  • QUOTES:指出是用一对双引号来分隔 CHAR、NCHAR、VARCHAR[2] 和NVARCHAR[2]值,用一对 ({}) 大括号来分隔 BINARY 和 VARBINARY 值,还是根本不进行分隔。它可由 -Q 选项覆盖(默认值:1[用一对双引号或大括号分隔])。
  • COMMENTCHAR:指定注释字符。它可以设为 none,表示禁止在数据文件中使用注释。可由 -C 选项覆盖。请参阅-C 选项,了解有效的注释字符(默认值:# [井号字符])。
  • DFORMAT:指定日期值的格式。它可由 -D 或 -dformat 选项覆盖。请参阅 -D 或-dformat选项,了解有效的日期格式(默认值:ODBC)。
  • TFORMAT:指定时间值的格式。它可由 -tformat 选项覆盖。请参阅 -tformat选项,了解有效的时间格式(默认值:ODBC)。
  • TSFORMAT:指定时间戳值的格式。它可由 -tsformat 选项覆盖。请参阅-tsformat选项,了解有效的时间戳格式(默认值:ODBC)。
  • NCHARENCODING:指定 NCHAR 和 NVARCHAR[2] 值的 Unicode 字符编码。它可由 -N选项覆盖。请参阅 -N 选项,了解有效的 Unicode 字符编码(默认值:UTF-8)。

留言