AYUDA!! ¿¿como inserto un bfile??

carmen
24 de Septiembre del 2003
hola, alguien me podria decir donde puedo obtener informacion y algun ejemplo para insertar/actualizar/consultar datos en una tabla que contiene un campo de tipo bfile?

fortfue
24 de Septiembre del 2003
Para la parte de cargar puedes probar lo siguiente:

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.

Respecto a consultar el dato lo mejor es desde un form.