SAP IQ 支持从 ASCII 和二进制数据装载,并且支持固定长度格式和可变长度格式。要处理所有这些格式,您可以在 LOAD TABLE 语句中提供
varchar 或 varbinary 列指定。执行二进制数据的装载时,关联数据部分的长度取决于是否使用 PREFIX 子句指定 VARYING 选项: 包含 VARYING 的 PREFIX varchar/varbinary 列的声明长度。例如,如果该列是 varchar (10),则关联数据部分的长度为 10 个字节。前缀部分表示字段中数据的实际长度,即使该长度短于文件中的字段 - 在这种情况下,实际数据之后的剩余数据将被忽略,且不会插入到表中的列。 如果计划对二进制模式选项生成的文件的 varchar 或 varbinary 列使用 PREFIX varchar / varbinary 的声明长度)的关联数据部分。如果指定 TEMP_EXTRACT_VARYING,则无需在提取出的文件中进行尾随填充即可提取 varchar 或 varbinary 列。如果使用 PREFIX varchar 列的尾随空白(以及 varbinary 列的尾随零)。
varchar 或 varbinary 列指定。
varchar/varbinary 列的声明长度。例如,如果该列是 varchar (10),则关联数据部分的长度为 10 个字节。前缀部分表示字段中数据的实际长度,即使该长度短于文件中的字段 - 在这种情况下,实际数据之后的剩余数据将被忽略,且不会插入到表中的列。
TEMP_EXTRACT_LENGTH_PREFIX 选项为数据提取功能生成的导出文件中的 varchar 或 varbinary 列指定特定长度(字节)的前缀字段。此选项允许您使用 LOAD TABLE 语句中的 BINARY PREFIX 为 varchar 或 varbinary 列进行二进制数据装载。
如果没有指定 TEMP_EXTRACT_LENGTH_PREFIX,或指定的值为 0(缺省值),则数据提取功能不会生成前缀长度字段。
如果为 TEMP_EXTRACT_LENGTH_PREFIX 指定任意其它有效值,则数据提取功能会为具备实际数据长度的前缀字段使用该指定的长度值(字节),同时将其置于 varchar 或 varbinary 列的实际数据之前,其中还包括列中尾随空格和尾随零的长度。但是如果未设置 TEMP_EXTRACT_VARYING 选项,那么在提取出的文件中,实际列数据的总长度为使用固定长度格式的声明长度。例如,数据提取功能始终为每个 varchar(10) 列生成 10 个字节,因此需要为文件格式设置固定的长度。
TEMP_EXTRACT_VARYING 允许您仅提取 varchar 或 varbinary 列的实际数据,而无需进行尾随填充。这使得您可以在二进制数据装载过程中在 LOAD TABLE 语句中对 varchar 或 varbinary 列使用 BINARY PREFIX VARYING。您需要结合使用 TEMP_EXTRACT_VARYING 和 TEMP_EXTRACT_LENGTH_PREFIX。
您只能在二进制模式提取中对 varchar 或 varbinary 列使用 TEMP_EXTRACT_VARYING。
如果将 TEMP_EXTRACT_VARYING 设置为 ON,那么在提取出的文件中,数据字段将变为可变长度(具有前缀字段)。数据字段在提取出文件中仅占据数据长度,而非 varchar 或 varbinary 列的声明长度,因此无需进行尾随填充。
结合 TEMP_EXTRACT_LENGTH_PREFIX 使用此选项以表示提取出的文件中的数据长度;二进制模式提取中不存在列分隔符。