您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

指定输入数据格式的装载

可以指定大量装载选项,这些选项告诉 SAP IQ 如何解释和处理输入文件,以及发生错误时如何处理。

您可以按任意顺序指定装载选项。

示例

显示双引号的装载

此示例使用按如下方式定义的表:

CREATE TABLE t1 (c1 INT, c2 VARCHAR(20), c3 VARCHAR(20))

该表包含以下输入数据:

1, apple , fruit1	 ,

2, "banana" , "fruit2",

3, " pear ", " fruit3 ",

执行此查询以显示装载此数据的结果:

SELECT c1, c2, c3, LENGTH(c2), LENGTH(c3) FROM t1

利用在执行 LOAD TABLE 命令期间所使用的 QUOTES 和 STRIP 选项的值,下表显示查询的结果,并将每个结果用尖括号括起来:

LOAD TABLE 选项SELECT c1, c2, c3, LENGTH(c2), LENGTH(c3) FROM t1 的结果QUOTESSTRIPc1c2c3length(c2)length(c3)ONRTRIM[1][apple][fruit1][5][6][2][banana][fruit2][6][6][3][ pear ][fruit3 ][6][8]ONOFF[1][apple ][fruit1 ][6][7][2][banana][fruit2][6][6][3][ pear ][ fruit3 ][6][8]OFFRTRIM[1][ apple][ fruit1][6][7][2][ "banana"][ "fruit2"][9][9][3][ " pear " ][ " fruit3 " ][9][11]OFFOFF[1][ apple ][ fruit1 ][7][8][2][ "banana" ][ "fruit2"][10][9][3][ " pear "][ " fruit3 "][9][11]  结果说明:

  • 使用 QUOTES ON 和 STRIP RTRIM 时,会剪裁 c2 行 1 的前导空格和尾随空格。

  • 使用 QUOTES ON 和 STRIP OFF 时,仅会剪裁 c2 行 1 的前导空格。

  • 使用 QUOTES OFF 和 STRIP RTRIM 时,仅会剪裁 c2 行 1 的尾随空格。

  • 使用 QUOTES OFF 和 STRIP OFF 时,既不会剪裁 c2 行 1 的前导空格,也不会剪裁尾随空格。

  • 使用 QUOTES ON 和 STRIP RTRIM 时,不会剪裁 c2 和 c3 行 3 引号中的前导空格和尾随空格。

    (Windows) 跳过指定字段的装载

    LOAD TABLE nn
    

    (l_orderkey,

    l_quantity ASCII(PREFIX 2),

    FILLER(2),

    FROM 'C:\\iq\archive\\mill.txt'

    BYTE ORDER LOW

    (Windows) 限制插入行数的装载

    不会跳过任何行,并且插入 1,000,000 行:

    LOAD TABLE lineitem
    

    (l_shipmode ASCII(15),

    l_quantity ASCII(8),

    FILLER(30))

    FROM 'C:\\iq\archive\\mill.txt'

    PREVIEW ON

    LIMIT 1000000

    (Windows) 包含制表符和换行符的装载

    以下示例将 l_orderkey 列的列分隔符设置为制表符,并将行分隔符设置为换行符 (\x0a) 后跟回车 (\x0d):

    LOAD TABLE mm
    

    (l_orderkey '\x09',

    l_quantity ASCII(4),

    FILLER(6),

    l_shipdate DATE('YYYY/MM/DD'))

    FROM 'C:\\iq\\archive\\mill.txt'

    ROW DELIMITED BY '\x0a\x0d'

    (UNIX) 跳过行的装载

    在此示例中, SAP IQ 从输入文件读取 9,000 行,跳过前 5,000 行,装载接下来的 4,000 行。如果输入文件中只有 8,000 行,则只装载 3,000 行。

    LOAD TABLE lineitem(
    

    l_shipmode ASCII(15),

    l_quantity ASCII(8),

    FILLER(30))

    FROM '/d1/MILL1/tt.t'

    LIMIT 4000

    SKIP 5000

    PREVIEW ON

    LOAD TABLE 添加行

    LOAD TABLE 语句将文件内容附加到表的现有行。

    要清空现有表,请使用 TRUNCATE TABLE 语句删除所有行。