2016-05-13 15 views
0

初めて、単に単一の列を持つファイルをロードしようとし、それを行うための適切な方法を見つけることができません:( 私は区切り文字として何を入れますか?SQLLDR・ロード・ファイル

ここに私です.CTLファイル:

load data 
infile 'myfile.dat' 
into table mytable 
fields terminated by '' 
(mycolumn) 

私は同じよう.logの中のエラーを得続ける::ファイル内の値は、最大8文字ごとやなめらかされているにもかかわらず

Record 4: Rejected - Error on table ..., column .... 
ORA-12899: value too large for column "... (actual: 80, maximum: 24) 

10文字列1 文字列2 文字列3

ご協力いただければ幸いです。あなたは、この場合にfields terminated byラインを必要としませんが、あなたは、既存のデータかどうかを保持する場合に応じて、TRUNCATEまたはAPPENDを持っている必要があり

多くのおかげで、 G

答えて

0

。各値のために挿入さ

load data 
infile 'myfile.dat' 
truncate 
into table mytable 
(mycolumn) 
+0

おかげゲイリーは、しかし、あなたのソリューションで、私は取得のみ1つの文字.. ソース列はVARCHAR2(24)です。 ファイルは次のようにスプールされている: 'SETがオフエコー SETフィードバック SETオフ用語オフ SET PAGESIZE 0 SETのNEWPAGE 0 SET空間MYTABLEから別個(MYCOLUMN)を選択MYFILE.DAT 0スプール。 SPOOL OFF ' スプールされたファイルをロードする前に、ターゲットテーブルが' create table mytable(mycolumn VARCHAR2(24)); 'として作成されましたが、ファイルから1文字も挿入されました.. – GeorgeK

+0

実際に問題はスプールされたファイルでは、改行は各行の右端にありました。これは、spooling sqlで 'set trimspool on'を追加すると機能しました – GeorgeK

+0

制御ファイルを次のように変更することもできます:' mycolumn char "trim(:mycolumn)" ' –

0

だけVARCHAR2を変更する80 アルターテーブルにあなたの列のサイズを変更しないのはなぜ(80)

関連する問題