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

フィールドをエスケープ文字で囲むようにソースファイルを変更する必要があります。例:

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 に答える
0

ソースデータを二重引用符(またはそれに関する引用符)で囲むことができる場合は、フラットファイルからの読み取り中にInformaticaの「オプションの引用符」オプションを使用できます。

于 2013-04-01T09:12:37.833 に答える