SQL*loaderで予期しないことが起こっており困っています。
下記のようなCSVデータを取り込んだのですが、1列目の1文字目の値が取り込まれません。
ユーザーID | ユーザー名 |
---|---|
001 | 佐藤 |
123 | 鈴木 |
999 | 田中 |
↓↓取込後↓↓
ユーザーID | ユーザー名 |
---|---|
01 | 佐藤 |
23 | 鈴木 |
99 | 田中 |
【補足】
・ユーザーIDのデータ型はVarchar2(7)
・関係無いとは思いますが、RECNUMでCSVの行数もDBに取り込んでいます
・値が落ちるのは1列目だけで、他の列は落ちません。
・他にも取り込んでいるテーブルがありますが、全てのテーブルで同様の現象が起きています。
どうもならず困っています。
原因がわかる方、ぜひ改善策をご教示ください。
以下、現在使用中の環境等の情報です。
・データベース
-Oracle 11g
・クライアント
-Win10 Pro
-OracleClient 11g
・設定ファイルのパラメータ
OPTIONS (ERRORS=1000)
LOAD DATA
INFILE 'ファイル名' "str '\r\n'"
APPEND
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE "テーブル名"
FIELDS TERMINATED BY','
OPTIONALLY ENCLOSED BY
--追記-----------------------------------------
自分で調べていく上でわかったことがあるので追記します。
根本解決はまだです。。。
https://dev.classmethod.jp/tool/easy-way-to-create-ctl-file-for-sql-loader/
上記のリンク先の情報を元に設定ファイル(.ctl)と取込ファイル(.ldr)を出力したところ、
取込ファイルの各レコードの頭に半角スペースが入っていることがわかりました。
--例--
_001,佐藤
_123,鈴木
_999,田中
※半角スペースをアンダーバーにしています。
そこで、CSVファイルも同様に半角スペースを入れたところ、
文字落ちすることなく取込むことができました。
この半角スペースが「これはこういうもの」であれば諦めるのですが、
できれば半角スペースなしで取り込めるようにしたいです。
解決方法がわかる方、どうぞお願いします!
回答2件