文件以'|'为分隔符,其中有字符串含有分隔符
该如何导入比如文件数据为,不对文件做任何修改
1|abc|
2|ab|c|导入表t(id,val)
希望得到
select id,val from t;
id  val
-----------------------
1  abc
2  ab|c

解决方案 »

  1.   

    数据既不是定长,并且值中又包含分隔符,不修改数据文件是无法加载的。分隔符就是用来区分字段的,如果字符串中有分隔符,可以使用optionally enclosed by '"'
    来指定字符串的包围符号,如双引号,但前提是数据要包含此符号
    如数据文件:
    1|"abc"
    2|"ab|c"
    控制文件:
    load data
    infile ........
    ..........
    fileds terminated by '|' optionally enclosed by '"'
    (
    ..........
    )
      

  2.   

    目前只有以下方案
    当含分隔符字段是文件最后一个字段还可以通过以下方法解决
    (id  number TERMINATED BY '|' "rtrim(:id,'|')" ,
    val   CHAR TERMINATED BY ' ' "rtrim(:val,'|')" 
    )但如果是在中间就没则了