Estoy intentando guardar un documento xml en mi base de datos Oracle. Para ello, accediendo como system, uso el código que he visto en arjudba.blogspot.com/2008/06/how-to-insert-blob-dataimage-video-into.html ligeramente modificado con los datos de mi tabla:
Código:
El caso es que a la hora de ejecutar el procedimiento me lanza el error ORA 22285 diciendo que el directorio no existe.-- creacion directorio CREATE OR REPLACE DIRECTORY direc as 'c:\xml'; -- create the procedure to load the file CREATE OR REPLACE PROCEDURE load_file ( ident NUMBER, nombrearchivo VARCHAR2) IS src_file BFILE; dst_file BLOB; lgh_file BINARY_INTEGER; BEGIN src_file := bfilename('direc', nombrearchivo); -- insert a NULL record to lock INSERT INTO archivos (id, axml, fecha) VALUES (ident, EMPTY_BLOB(), SYSDATE) RETURNING axml INTO dst_file; -- lock record SELECT axml INTO dst_file FROM archivos WHERE id = ident FOR UPDATE; -- open the file dbms_lob.fileopen(src_file, dbms_lob.file_readonly); -- determine length lgh_file := dbms_lob.getlength(src_file); -- read the file dbms_lob.loadfromfile(dst_file, src_file, lgh_file); -- update the blob field UPDATE archivos SET axml = dst_file WHERE id = ident; -- close file dbms_lob.fileclose(src_file); END load_file; /
Por lo que he visto en internet, el problema puede estar en que hay que usar un directorio "del servidor" en lugar de un directorio de mi disco duro. He estado buscando cómo crear un directorio en el servidor, pero no he sacado nada en claro. ¿Puede ser ese el problema? Y en ese caso, ¿cómo creo un directorio en el servidor referenciando a otro directorio en de mi disco duro?
Gracias y un saludo.