BLOB -> Fichero

txarly
20 de Febrero del 2004
Hola a todos;
Tengo almacenados ficheros en una tabla de Oracle como campos de tipo BLOB. ¿Existe alguna función PL/SQL para extraer el campo de tipo BLOB de la base de datos y generar el fichero en cualquier lugar del disco? He estado mirando el package DBMS_LOB y no he encontrado nada

Alguien me puede ayudar

Un saludo
Txarly


fredylondo
20 de Febrero del 2004
Hay que usar el paquete dbms_lob, los bfile y los directory.

Se crea un objeto DIRECTORY indicando donde está el fichero a cargar:

CREATE OR REPLACE DIRECTORY \\'DIRECTORIO\\' as \\'/private1/LOB/files\\';

Donde \\'DIRECTORIO\\' es un identificador que nosotros le damos y \\'/private1/LOB/files\\' es el path donde vamos a poner los ficheros a cargar.

Se lanza algo como lo siguiente:

declare
lobd BLOB;
fils BFILE;
amt number;
BEGIN
fils:=BFILENAME(\\'DIRECTORIO\\', \\'fichero.jpg\\');
DBMS_LOB.FILEOPEN(fils, dbms_lob.file_readonly);
amt:=dbms_lob.GETLENGTH( fils );
dbms_lob.CREATETEMPORARY(lobd,false);
DBMS_LOB.LOADFROMFILE(lobd, fils, amt);
update \"nombretabla\" set \"columnablob\"=lobd where \"condicion\";
COMMIT;
DBMS_LOB.FILECLOSE(fils);
END;

Donde fichero.jpg es el nombre del fichero a cargar, \"nombretabla\" la tabla donde lo cargamos, \"columnablob\" la columna tipo blob y \"condicion\" las condiciones que queramos poner en el where. Por supuesto en lugar de un update podría ser un insert.


Terry
20 de Febrero del 2004
Necesito almacenar un fichero en una tabla de Oracle como campo de tipo BLOB. ¿Como puedo hacerlo a travez de una pagina web? y/o a travez de ASP.

si me pudieras ayudar te lo agradeceria mucho

de antemano muchas gracias.