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

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

4

3 回答 3

5

使用 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, '^.*?,.*?,')"
)
于 2013-03-25T10:43:04.977 回答
0

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

于 2013-04-01T09:12:37.833 回答
0

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

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

然后在 sql-loader 你会放:

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

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

于 2013-03-25T10:30:29.973 回答