2017-01-02 22 views
1

以下は私のテーブル構造と.CTL FILE & .CSVファイルです。データのロード中に、最初の行にエラーが発生しています。&他のデータがロードされています。私が最初のレコードに完全な空白行を残すと、すべてのデータが挿入されます。 私は最初のレコードでエラーが発生している理由を教えてください。SQL LOADER ERROR_0102

table_structureあるいはindex_structure

ING_DATA 
(
    ING_COMPONENT_ID NUMBER    NOT NULL, 
    PARENT_ING_ID  NUMBER    NOT NULL, 
    CHILD_ING_ID  NUMBER    NOT NULL, 
    PERCENTAGE    NUMBER(7,4)   NOT NULL 
); 

CTLファイル

LOAD DATA 
INFILE 'C:\Users\pramod.uthkam\Desktop\Apex\Database\SQL LOADER-PROD\ING_COMPONENT\ingc.csv' 
BADFILE 'D:\SQl Loader\bad_orders.txt' 
INTO TABLE ING_data 
FIELDS 
TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
    TRAILING NULLCOLS 
(
ING_Component_ID , 
Parent_ING_ID , 
Child_ING_ID , 
Percentage 
)  

CSVファイル

1,3,4,95.0000 
2,3,5,5.0000 
3,6,7,5.0000 
4,6,4,95.0000 
5,18,19,19.0000 
6,18,20,80.0000 
7,18,21,1.0000 
8,34,35,85.0000 

LOGファイル

Record 1: Rejected - Error on table ING_COMPONENT, column ING_COMPONENT_ID. 
ORA-01722: invalid number 


Table ING_COMPONENT: 
    7 Rows successfully loaded. 
    1 Row not loaded due to data errors. 
    0 Rows not loaded because all WHEN clauses were failed. 
    0 Rows not loaded because all fields were null. 

Space allocated for bind array:     66048 bytes(64 rows) 
Read buffer bytes: 1048576 

Total logical records skipped:   0 
Total logical records read:    7 
Total logical records rejected:   1 
Total logical records discarded:  0 

悪いファイル

1,3,4,95.0000 
+1

私はで空白行を残す場合は最初の行のみが付属していますあなたはING_DATAのstrucureを投稿、しかし、あなたのCTLがING_Component – Aleksej

+0

こんにちはAleksejを指しit.Iに見ているため おかげでING_DATA.problemにING_Componentからテーブル名を修正しました最初の行はデータが正しく挿入されます.i SQLサーバーからこのデータをエクスポートして、Oracleにロードしようとしています – Pramod

答えて

0

ファイルをそのまま作成して読み込もうとしました。私にとってはうまくいく。 8行すべてが読み込まれました。問題ありません。私はRed Hat Linuxで試していました。

私は2つのことを試みました。

dos2unix myctl.ctl

SQLLDRを実行しました。すべての行が挿入されました。 はその後、私が試した:

unix2dos myctl.ctl

は、再び拒否された全8つのレコードをSQLLDRを実行しました。だから私が信じているのは、あなたの最初のレコード行の終わりはあなたのsqlplusの読み込み可能な形式ではないということです。空白行を手動で入力すると、デフォルトの環境(私の場合はUNIXのような)が正しい行末を作成し、レコードが読み込まれます。私は確信していませんが、上記のように私自身の試みに基づいてこれを仮定します。

Windowsでこのファイルを読み込んでいるとしましょう(パスは次のようになっていると思います:))csvファイルでは、最初に空白行を付けてから削除し、最初のレコードの後に​​同じことをしますまた、(最初のレコードの後に​​空白行を付けてから削除してください)。その後、もう一度試してください。問題は私が疑うものであれば動作するかもしれない。

+0

こんにちは不正なコーダー、UNIXで正しく動作し、すべてのレコードが挿入されますが、なぜなら、最初のレコードがsqlplusフォーマットとして読み込めないのはなぜか分かりませんが、データを直接エクスポートしているからです。 SQL Serverデータベースのクエリから.csvファイルに変換します。 – Pramod

+0

申し訳ありませんが、SQL Serverの経験はありませんので、説明できません。 –

関連する問題