首页 文章

Delimeter文件问题

提问于
浏览
0

我有一个没有固定结构的平面文件

name,phone_num,Address
 bob,8888,2nd main,5th floor,avenue road

这里最后一列 Address 的值为 2nd main,5th floor,avenue road 但由于同一个分隔符 , 用于分隔列,我也没有得到任何线索如何处理相同的 .

平面文件的结构可能会因文件而异 . 如何使用 Informatica or SQL * Loader or UTL Files 导入时处理此类平面文件

我将无法访问平面文件只是我应该从它读取数据,但我不能编辑平面文件中的数据 .

3 回答

  • 0

    使用SQLLoader

    load data
    append
    into table schema.table
    fields terminated by '~'
    trailing nullcols
    (
       line       BOUNDFILLER,
       name       "regexp_substr(:line, '^[^,]+')",
       phone_num  "regexp_substr(:line, '[^,]+', 1, 2)",
       Address    "regexp_replace(:line, '^.*?,.*?,')"
    )
    
  • 5

    您需要更改源文件以将字段括在转义字符中,例如:

    name,phone_num,Address
     bob,8888,^2nd main,5th floor,avenue road^
    

    然后在sql-loader中你放了:

    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '^'
    

    只需选择一个通常不会出现在数据中的分隔符 .

  • 0

    如果您可以将源数据包含在双引号(或任何引号)中,则可以在从Flat文件中读取时使用Informatica中的“可选引号”选项

相关问题