Column Export stage :输入选项卡 ( DataStage® )
格式 部分允许您指定要导出的列中的数据将如何格式化的详细信息。 列 部分指定传入数据的列定义。 高级 部分允许您更改输入链接的缺省缓冲设置。
格式部分
记录"、"行"、"字段"、"列 "等术语可以互换使用。
以下各节列出了属性类型和每种类型的可用属性。
记录级别
- 填充字符。 指定 ASCII 字符或 0 至 255 范围内的数值。 您还可以从下拉列表中选择空格或空。 该字符用于填补因列定位属性造成的书面记录中的任何空白。 默认设置为 0(即 NULL 字符)。 例如,要将其设置为空格,也可以键入空格字符或输入 32。 请注意,该值仅限一个字节,因此不能指定多字节 Unicode 字符。
- 最终分隔符字符串。 指定写在记录最后一列后面的字符串,以代替列分隔符。 输入一个或多个字符,如果使用记录分隔符,则在分隔符之前输入。 与 Final 分隔符互斥,这是默认设置。 例如,如果将 Delimiter(分隔符)设置为逗号,将 Final delimiter(最终分隔符)字符串设置为 `, `(逗号空格--无需输入反向逗号),则所有字段均以逗号分隔,但最终字段除外,该字段以逗号后的 ASCII 空格字符分隔。
- 最后分隔符。 指定写在记录最后一列之后的一个字符,以代替字段分隔符。 键入一个字符,或从空白、结束、无、空、制表符或逗号中选择一个。 见下图说明。
- 空白。 每条记录的最后一列将不包括记录末尾的空白。
- 结束。 每条记录的最后一列不包括字段分隔符。 这是缺省设置。
- 没有。 每条记录的最后一列没有分隔符;用于固定宽度字段。
- 无效。 每条记录的最后一列由 ASCII 空字符分隔。
- 逗号。 每条记录的最后一列用 ASCII 逗号分隔。
- 标签。 每条记录的最后一列用 ASCII制表符分隔。
- 完好无损。 intact 属性指定部分模式的标识符。 部分模式指定阶段只能修改模式中指定的列。 该行中的所有其他列将不加修改地通过。 包含部分模式的文件在 "属性"选项卡上的 "模式文件"属性中指定。 该属性有一个从属属性,即 "检查是否完好",但这与输入链接无关。
- 记录分隔符字符串。 指定要写入每条记录末尾的字符串。 输入一个或多个字符。 这与默认的记录分隔符、记录类型和记录前缀互斥。
- 记录分隔符。 指定要在每条记录末尾写入的单个字符。 键入一个字符或选择以下选项之一:
- UNIX 换行(默认值)
- 空值
(要使用 DOS 换行符,请将记录分隔符字符串属性设置为"\R\N",或从快捷菜单中选择 "")
注意:记录分隔符与记录分隔符字符串、记录前缀和记录类型互斥。 - 记录长度 在写入固定长度字段时选择 "固定"。 IBM DataStage会计算记录的适当长度。 或者以字节数指定固定记录的长度。 默认情况下不使用(默认文件以逗号分隔)。 记录将以零或填充字符(如果指定了填充字符)填充到指定长度。
- 记录前缀。 指定可变长度记录使用 1、2 或 4 字节长度前缀。 默认设置为 1。 这与默认的记录分隔符、记录分隔符字符串和记录类型互斥。
- 记录类型 指定数据由长度可变的阻塞记录(可变)或隐式记录(隐式)组成。 如果选择隐式属性,数据将以流的形式写入,没有明确的记录边界。 当模式定义的所有列都已解析完毕时,就推断出记录的结束。 通过变化属性,您可以指定下列IBM阻塞或跨接格式之一:V、VB、VS、VBS 或 VR。 数据导入时使用其中一种格式。 这些格式无法导出。
该属性与记录长度、记录分隔符、记录分隔符字符串和记录前缀互斥,默认情况下不使用。
字段缺省值
- 实际字段长度。 指定当字段标识为空时,用填充字符填充的字节数。 当IBM DataStage识别出一个空字段时,它会写入一个此长度的字段,其中充满填充字符。 这与空字段值互斥。
- 分隔符。 指定记录中所有字段的尾部分隔符。 键入一个 ASCII 字符,或从空白、结束、无、空、逗号或制表符中选择一个。
- 空白。 列末尾的空白字符将被忽略,即不被视为列的一部分。
- 结束。 字段的末尾作为定界符,即,没有单独的定界符。 这与用于固定列宽字段的 "无 "设置不同。
- 没有。 无分隔符(用于固定宽度)。
- 无效。 使用 ASCII 空字符。
- 逗号。 使用 ASCII 逗号字符。
- 标签。 使用 ASCII制表符。
- 分隔符字符串。 指定要写在每个字段末尾的字符串。 输入一个或多个字符。 这与定界符(这是缺省值)互斥。 例如,指定 `, `(逗号空格--不需要输入倒逗号)后,每个字段将以 `, ` 分隔,除非个别字段被覆盖。
- 空字段长度。 包含空字符的可变长度字段的长度(字节)。 写入可变长度字段时,如果字段包含空值,IBM DataStage会写入空字段长度值。 该属性与空字段值互斥。
- 空字段值。 如果源设置为空,则指定写入空字段的值。 可以是数字、字符串或 C 型字面转义字符。 For example, you can represent a byte value by \呜, where each o is an octal digit 0 - 7 and the first o is < 4, or by \xhh, where each h is a hexadecimal digit 0 - F. 必须使用这种形式对不可打印的字节值进行编码。
该属性与空字段长度和实际长度互斥。 对于固定宽度的数据表示,如果指定的值短于字段的固定宽度,可以使用 Pad char(来自类型默认值的常规部分)来指定重复的尾部字符。
空字段值有一个名为 "空字段值分隔符 "的子属性。 该选项用于输出数据,在属于输入链接的 "格式 "选项卡上应忽略。
- 前缀字节。 指定数据文件中的每一列以 1、2 或 4 个字节作为前缀,这些字节以二进制形式包含列的长度或标记字段的标记值。
可以将此选项与变长字段配合使用。 可变长度字段可以由字符定界,它前面也可以是 1、2 或 4 个字节的包含字段长度的前缀。 IBM DataStage会在每个字段前插入前缀。
此属性与缺省情况下使用的“定界符”、“引号”和“最终定界符”属性互斥。
- 打印字段。 此属性与输入链接无关。
- 引用。 指定用单引号、双引号或其他字符或一对字符括起长度可变的字段。 选择 "单 "或 "双",或输入一个字符。 默认设置为双引号。
写入时,IBM DataStage会插入前引号字符、数据和后引号字符。 引号字符不计入字段的长度。
- 矢量前缀。 对于长度可变的矢量字段,指定包含矢量元素个数的 1、2 或 4 字节前缀。 您可以为单个向量覆盖默认前缀。
可变长度矢量必须使用矢量上的前缀或与另一个字段的链接来指定矢量中的元素个数。 如果变长向量有前缀,则使用此属性表示前缀长度。 IBM DataStage将元素计数作为前缀插入每个变长向量字段。 默认情况下,前缀长度假定为一个字节。
类型缺省值
这些属性适用于特定数据类型的所有列,除非在列级别特别重载。 根据数据类型,它们被分为若干子组。
常规
- 字节顺序 指定多个字节数据类型(字符串和原始数据类型除外)的排序方式。 请从下列各项中进行选择:
- 小二进制 高字节在右边。
- 大端序。 高字节在左边。
- 本位二进制。 由机器的本机格式定义。 这是缺省值。
- 数据格式。 指定字段的数据表示格式。 适用于除字符串、ustring 和 raw 以外的所有数据类型字段,以及至少包含一个既非字符串也非 raw 字段的 record、subrec 或 tagged 字段。 请从下列各项中进行选择:
- 二进制
- 文本(默认)
二进制设置在应用于不同数据类型时有不同的含义:
- 对于小数,二进制表示打包。
- 对于其他数字数据类型,二进制表示 "非文本"。
- 对于日期,二进制相当于为日期字段指定朱利安属性。
- 对于时间,二进制相当于 midnight_seconds。
- 对于时间戳,二进制指定第一个整数包含时间戳日期部分的儒略日计数,第二个整数指定时间戳的时间部分为从午夜开始的秒数。 二进制时间戳指定写入两个 32 位整数。
默认情况下,数据格式为文本,如下所示:
- 对于日期数据类型,文本指定要写入的数据包含文本日期,格式为%d或默认日期格式(如果在 NLS 系统中定义了新格式)。
- 对于十进制数据类型:字段以字符串格式表示十进制,如果刻度不为零,则前导空格或"-"后跟小数位,并嵌入小数点。 目标字符串格式为[+|-]ddd.[ddd],任何精度和比例参数都将被忽略。
- 对于 "数字字段("int8、"int16"、"int32"、"uint8"、"uint16"、"uint32"、sfloat 和 dfloat): IBM'DataStage假定数字字段表示为文本。
- 对于时间数据类型:text 表示字段以文本形式 %hh:%nn%s表示时间。
- 对于时间戳数据类型:text 以%d%hh:%nn:%s的形式指定基于文本的时间戳,如果在 NLS 系统中定义了新的日期格式,则使用默认日期格式。
- 字段最大宽度。 列中的最大字节数表示为字符串。 请输入数字。 在将数字作为文本存储时,这很有用。 如果您正在使用固定宽度的字符集,那么可以精确计算长度。 如果您正在使用变长字符集,请为字段计算足够的最大宽度。 适用于除了日期、时间、时间戳记和原始数据类型之外的所有数据类型的字段;以及记录、子记录或者已标记的字段(如果它们至少包含一个此类型的字段)。
- 场地宽度。 以字符串表示的字段中的字节数。 请输入数字。 在将数字作为文本存储时,这很有用。 如果使用的是固定宽度的字符集,则可以精确计算字节数。 如果是变长编码,则根据变宽字符的宽度和频率进行计算。 适用于除了日期、时间、时间戳记和原始数据类型之外的所有数据类型的字段;以及记录、子记录或者已标记的字段(如果它们至少包含一个此类型的字段)。
如果既未指定字段宽度,也未指定字段最大宽度,则以文本形式写入的数字字段的最大宽度为以下字节数:
- 8 位有符号或无符号整数:4 字节
- 16 位有符号或无符号整数:6 字节
- 32 位有符号或无符号整数:11 字节
- 64 位有符号或无符号整数:21 字节
- 单精度浮点数:14 个字节(符号、数字、小数点、7 个分数、"E"、符号、2 个指数)
- 双精度浮点数:24 个字节(符号、数字、小数点、16 个分数、"E"、符号、3 个指数)
重要:如果使用 Unicode 字符列,必须以字节为单位计算字段长度,并在字段宽度列属性中指定该值。 - 焊盘字符 指定将字符串或数值写入外部字符串表示时使用的填充字符。 输入一个字符(字符串为单字节,ustrings 可以是多字节),或者选择空格或空格。 当外部字符串表示大于存放已编写字段时,使用填充字符。 在这种情况下,外部字符串使用填充字符填充到其完整长度。 空格是缺省值。 适用于字符串、ustring 和数字数据类型,以及 record、subrec 或标记类型(如果它们至少包含一个此类字段)。
- 字符集。 指定字符集。 从 ASCII 或 EBCDIC 中进行选择。 默认值为 ASCII。 适用于除 raw 和 ustring 以外的所有数据类型,以及除 raw 或 ustring 以外不包含其他字段的 record、subrec 或 tagged。
字符串
- 将 EBCDIC 导出为 ASCII。 选择此项可指定将 EBCDIC 字符写成 ASCII 字符。 适用于字符串数据类型的字段,以及包含至少一个该类型字段的记录、子记录或标记字段。
- 导入 ASCII 为 EBCDIC。 与输入链接无关。
decimal
- 允许全部为零。 指定是否将包含全零(通常为非法)的压缩十进制列视为零的有效表示。 选择是 或否。 默认为 "否"。
- 小数分隔符。 指定作为十进制分隔符的 ASCII 字符(默认为句号)。
- 已包装。 选择一个选项,指定十进制列包含的内容:
- 是,用于指定十进制列包含打包的十进制格式数据(默认值)。 它具有以下子属性:
检查。 选择 "是 "验证数据是否打包,或选择 "否"不验证。
已签署。 选择是,在书写十进制列时使用现有符号。 选择 "否"可写入正号0xf),与列的实际符号值无关。
- 否 (单独),以指定它们包含未打包的十进制和一个单独的符号字节。 其子属性如下
标志位置。 根据需要选择前导或尾部。
- 否(分区),以指定它们包含 ASCII 或 EBCDIC 文本中未打包的十进制。 其子属性如下
标志位置。 根据需要选择前导或尾部。
- 否(超打)用于指定字段的前导字节或末尾字节包含一个字符,该字符既指定该字节的数值,也指定整个数字是负符号还是正符号。 其子属性如下
标志位置。 根据需要选择前导或尾部。
- 是,用于指定十进制列包含打包的十进制格式数据(默认值)。 它具有以下子属性:
- 精确。 指定文本格式中写入十进制列的精度。 请输入数字。 将十进制写入字符串表示时,IBM DataStage使用为源十进制字段定义的精度和比例来确定目标字符串的长度。 精度和小数位属性将覆盖此缺省值。 如果定义了它们,IBM DataStage会截断或填充源十进制,以适应目标字符串的大小。 如果还指定了字段宽度属性,IBM DataStage会截断或填充源十进制,以适应字段宽度指定的大小。
- 四舍五入。 指定写入十进制列时的四舍五入方法。 请从下列各项中进行选择:
- 向上(天花板)。 向正无穷大截断源列。 此方式对应于 IEEE 754 向上舍入方式。 例如,1.4变为 2,-1.6变为-1。
- 下(地板)。 向负无穷大截断源列。 此方式对应于 IEEE 754 向下舍入方式。 例如,1.6变为 1,-1.4变为-2。
- 最近的值。 将源列向最接近的可表示值舍入。 此方式对应于 COBOL ROUNDED 方式。 例如, 1.4 变为 1, 1.5 变为 2, -1.4 变为 -1 , -1.5 变为 -2。
- 向零截断。 这是缺省值。 将目标所支持的最右侧小数位右侧的小数位废弃,而不考虑符号。 例如,如果目标是整数,那么将截断所有小数位。 如果目标是具有更小的小数位的另一个十进制数,那么会截断为目标十进制数的小数位大小。 此方式对应于 COBOL INTEGER-PART 函数。 使用此方法时,1.6 将变为 1,-1.6 将变为 -1。
- 规模。 当源十进制的精度和刻度大于目标十进制的精度和刻度时,指定如何对源十进制进行四舍五入。 默认情况下,当IBM DataStage将源十进制写入字符串表示法时,它会使用为源十进制字段定义的精度和比例来确定目标字符串的长度。 您可以通过精度和比例属性覆盖默认值。 这样做时,IBM DataStage会截断或填充源十进制,以适应目标字符串的大小。 如果还指定了字段宽度属性,IBM DataStage会截断或填充源十进制,以适应字段宽度指定的大小。
数值
- C_格式。 执行从整数或浮点数据到字符串的非默认转换。 该属性指定用于写入整数或浮点字符串的 C 语言格式字符串。 这将传递给sprintf()。例如,指定%x的 C 格式和 8 的字段宽度可确保将整数写成 8 字节的十六进制字符串。
- In_format. 此属性与输入链接无关..
- 输出格式。 格式字符串,用于将数据从整数或浮点数据转换为字符串。 这将传递给sprintf()。默认情况下,IBM DataStage会调用 Csprintf() 函数,将格式为整数或浮点数据的数值字段转换为字符串。 如果该函数不能以令人满意的格式输出数据,可以指定 out_format 属性,将格式化参数传递给sprintf()。
Date
- 之后的日子 日期被编写为带符号的整数,它包含自从所指定日期以来的天数。 以 %yyyy-%毫米-% 'd'd 的形式输入日期。
- 格式字符串。 日期的字符串格式。 缺省情况下,这是 %yyyy-%mm-%dd。
- 是朱利安。 选择此项以指定将日期编写为包含儒略日的数字值。 儒略日将日期指定为从 4713 BCE 1 月 1 日 12:00 点钟(正午,格林威治标准时间)开始的天数。
时间
- 格式字符串。 指定以字符串形式表示时间的列的格式。
- 是午夜秒钟。 选择此项以指定将时间编写为二进制 32 位整数,其中包含从前一天午夜以来所耗用的秒数。
时间戳记
- 格式字符串。 指定以字符串形式表示时间戳的列的格式。 默认为%d%hh:%nn:%%s。 格式结合了日期字符串和时间字符串的格式。