Usualmente uso una forma diferente de cargar datos BLOB usando SQL*Loader. Básicamente, importo un archivo de texto que contiene los nombres de los archivos y, en el archivo de control, le digo a SQL*Loader que el contenido real proviene de un archivo lob.
En su caso, esto significa que necesitaría crear un archivo de texto que contenga (solo) el nombre de archivo del jpg. El archivo de control debería verse así:
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 )
El archivo de entrada data.txt
entonces se vería así:
0211664.jpg
Es importante que el image lobfile ...
parte está al final y que cualquier definición constante viene primero en el archivo de control.
Usar este tipo de enfoque me parece mucho más simple porque no necesita saber el tamaño del archivo de entrada y puede cargar más de una imagen con una ejecución de SQL*Loader, que probablemente sea mucho más rápida si necesita cargar un gran cantidad de imágenes.
Si desea cargar más de una imagen, el archivo de entrada debe contener los valores constantes que proporcionó hasta ahora dentro del archivo de control. Tome el siguiente archivo de entrada:
6598,PER_PEOPLE_F,0211664.jpg 6599,PER_PEOPLE_F,0123456.jpg 6600,PER_PEOPLE_X,0987654.jpg
Luego puede cargar las tres imágenes con un único archivo de control:
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 )
El archivo de control nunca cambiará, solo el contenido de data.txt
archivo.
Su archivo de control original funciona para mí, si el raw(9529)
se elimina por completo:
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" )