Normalerweise verwende ich eine andere Methode zum Laden von BLOB-Daten mit SQL*Loader. Grundsätzlich importiere ich eine Textdatei, die die Dateinamen enthält, und in der Steuerdatei sage ich dann SQL*Loader, dass der eigentliche Inhalt aus einer LOB-Datei stammt.
In Ihrem Fall bedeutet dies, dass Sie eine Textdatei erstellen müssen, die (nur) den Dateinamen des JPG enthält. Die Steuerdatei sollte dann so aussehen:
LOAD DATA infile data.txt TRUNCATE INTO TABLE per_images FIELDS TERMINATED BY ',' TRAILING NULLCOLS ( input_file FILLER, image_id "PER_IMAGES_s.nextval", parent_id constant 6598, table_name constant "PER_PEOPLE_F", image lobfile(input_file) terminated by eof )
Die Eingabedatei data.txt
würde dann so aussehen:
0211664.jpg
Es ist wichtig, dass die image lobfile ...
part am Ende steht und dass jede Konstantendefinition zuerst in der Steuerdatei steht.
Die Verwendung dieser Art von Ansatz erscheint mir viel einfacher, da Sie die Größe der Eingabedatei nicht kennen müssen und Sie mehr als ein Bild mit einem SQL*Loader-Lauf laden können, was höchstwahrscheinlich viel schneller ist, wenn Sie ein laden müssen große Menge an Bildern.
Wenn Sie mehr als ein Bild laden möchten, muss die Eingabedatei die konstanten Werte enthalten, die Sie bisher in der Steuerdatei angegeben haben. Nehmen Sie die folgende Eingabedatei:
6598,PER_PEOPLE_F,0211664.jpg 6599,PER_PEOPLE_F,0123456.jpg 6600,PER_PEOPLE_X,0987654.jpg
Dann können Sie alle drei Bilder mit einer einzigen Steuerdatei laden:
LOAD DATA infile data.txt TRUNCATE INTO TABLE per_images FIELDS TERMINATED BY ',' TRAILING NULLCOLS ( parent_id, table_name, input_file FILLER, image_id "PER_IMAGES_s.nextval", image lobfile(input_file) terminated by eof )
Die Steuerdatei wird sich nie ändern, nur der Inhalt der data.txt
Datei.
Ihre ursprüngliche Steuerdatei funktioniert für mich, wenn die raw(9529)
wird vollständig entfernt:
options (bindsize 9529) load data infile 0211664.jpg "fix 9529" append into table PER_IMAGES ( image, parent_id constant 6598, table_name constant "PER_PEOPLE_F", image_id "PER_IMAGES_s.nextval" )