2017-03-08 2 views
0

SQLローダーを使用している列の1つの表に値をロードしようとしています。SQLローダーを使用してbfileをロード

私のテーブルのようになります。ここでは

create table documents 
    (id number primary key 
    , text bfile) 

は私のCTL ADN DATファイルです:

3;my_file.txt 

loader.dat

loader.ctl

load data 
infile d':\test\loader.dat' 
into table documents 
replace 
fields terminated by ';' 
    (id integer 
    , text bfilename('MY_DIRECTORY', 'my_file.txt') terminated by eof) 

私はsqlldrコマンドウィットを実行する時間偶然には、上記の、私はエラーメッセージを受信:

SQL *ローダー350:ラインでSuntaxエラー7

は期待 "" または ")"、 "BFILENAME" を発見しました。

, text bfilename('MY_DIRECTORY', 'my_file.txt') terminated by eof) 

    ^

私が何か間違ったことやSQLローダーアムのBFILEを受け入れませんか?

ありがとう、

+0

rhe wrror messege – mikcutu

答えて

1

ドキュメントにはa section on loading BFILE columnsがあります。

load data 
infile d:\test\loader.dat 
into table documents 
replace 
fields terminated by ';' 
    (id 
    , filename filler 
    , text bfile(constant 'MY_DIRECTORY', filename)) 

あなたドン: - とないbfilename() - フィールド定義

はあなたのデータファイルにファイル名のフィールドを表しますフィラー列があり、その後、bfile()にそのフィラーフィールド名を参照する必要がありますIDフィールドをintegerとして宣言します。 this is a full-word binary integerであり、テーブルの列に期待した値が得られない可能性があります。

明示的に数値に変換したい場合は、あなたが行うことができます:

... 
fields terminated by ';' 
    (id "to_number(:id)" 
    , filename filler 
    , text bfile(constant 'MY_DIRECTORY', filename)) 

が、暗黙の型変換は通常、あまりにもOKになります。

+0

を投稿すると間違いがありますが、ソリューションはテーブルに行をロードしていますが、ハードディスクの物理的な場所にリンクされていないようです。テーブルを参照してファイルの1つを保存しようとすると、エラーが発生しました。 「java.lang.NullPointerExceptionが oracle.dbtools.raptor.extendedtype.BFILEType.saveToDisk(BFILEType.java:106)で\t oracle.dbtools.raptor.controls.celleditor.ExtendedTypeEditPanel.saveToDisk(ExtendedTypeEditPanel.javaで \t。 oracle.dbtools.raptor.controls.celleditor.BFileEditPanel.processExtendedType(BFileEditPanel.java:192)oracle.dbtools.raptor.controls.celleditor.ResultSetCellEditor.showExtendedTypeEditにおける " – mikcutu

+0

" \t(ResultSetCellEditor.java:299)における398) \t \t oracle.dbtools.raptor.controls.celleditor.ResultSetCellEditor.access $ 200(ResultSetCellEditor.java:52) \t oracle.dbtools.raptor.c ontrols.celleditor.ResultSetCellEditor $ 1.actionPerformed(ResultSetCellEditor。Javaの:javax.swing.DefaultButtonModelでjavax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2169)で140) javax.swing.AbstractButton.fireActionPerformedで\t(AbstractButton.java:1849) \t " – mikcutu

+0

" \t .fireActionPerformed(DefaultButtonModel.java:420) javax.swing.DefaultButtonModel.setPressedで\t(DefaultButtonModel.java:258) javax.swing.plaf.basic.BasicButtonListener.mouseReleasedで\t(BasicButtonListener.java:236) \tでjava.awt.Component.processMouseEvent(Component.java:5517) \t(javax.swing.JComponent.processMouseEvent)(JComponent.java:3135) java.awt.Component.processEventで(Component.java:5282)java.awt.Container.processEventで \t(Container.java:1966)java.awt.Component.dispatchEventImplで \t(Component.java:3984) java.awt.Container.dispatchEventImpl(Container.java:2024)における " – mikcutu

関連する問題