将 ASCII 输入数据转换为二进制。
使用 ASCII 转换选项可以:
您可以将此选项用于任何 SAP IQ 数据类型、带有 1、2 或 4 个前缀字节以及带有列分隔符的数据类型。
如果输入列宽度大于目标列宽度,SAP IQ 将在插入时截断数据。
如果输入数据宽度小于目标列宽度,对于 CHAR 或 VARCHAR 数据类型,SAP IQ 将在插入时在表中使用空格填充数据。
向 VARCHAR 列插入可变宽度将不会剪裁尾随空格,而向 VARCHAR 列插入固定宽度则会剪裁尾随空格。例如,假定要插入到 varcolumn 表的 vartable 列。以下命令将构成一个固定宽度的插入,由于您显式指定应包含两个空白(此处通过 __ 表示),因此不会剪裁此插入中的值:
INSERT INTO vartable VALUES ('box__')如果您改用分隔输入从平面文件插入相同值,此插入的宽度则是可变的,因此将剪裁尾随空白。
ASCII 转换选项将处理 SAP IQ 数据类型。本示例从 ASCII 平面文件 shipinfo.t 向 SAP IQ 表 lineitem 插入数据,并概述了输入数据和表的内容和格式。
文件 shipinfo.t表 lineitem列格式宽度列数据类型宽度l_shipmodeCHAR15l_shipmodeVARCHAR30l_quantityASCII8l_quantityINT4
对于 l_shipmode 列,您需要将 ASCII 数据插入到 ASCII 列(数据类型为 VARCHAR)。请注意,两个列的宽度不同。为了使此列及后续 l_quantity 列上的插入准确无误,应指定 l_shipmode 列的宽度,以便在正确位置读取正确的输入数据量。
对于 l_quantity 列,您需要将 ASCII 数据插入到二进制列(INT 数据类型)。为了使此列上的插入准确无误,必须将输入数据转换为二进制类型,并指明输入列的宽度。
下面的 UNIX 示例显示了此命令:
LOAD TABLE lineitem(
l_shipmode ASCII(15),
l_quantity ASCII(8),
FILLER(1))
FROM '/d1/MILL1/shipinfo.t'
PREVIEW ON