Programación en castellano
Inicio > Foros > Oracle > Cargar datos en campo blob desde cliente
-Foros de debate

Oracle
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Cargar datos en campo blob desde cliente
Enviado por David el día 19 de septiembre de 2003

Necesitamos saber cómo se podría (en caso de poderse) cargar datos en un campo blob sabiendo que el fichero de origen va a estar en una máquina cliente usando un proceso PL/SQL. Gracias.

 
Re: Cargar datos en campo blob desde cliente
Enviado por nerea el día 19 de septiembre de 2003

Puedes utilizar el paquete DBMS_LOB, y la función loadfromfile. Un ejemplo:

Primero tienes que crear un directorio:
create or replace directory "LOBMANIP" as '/home/ficheros';

CREATE OR REPLACE PROCEDURE load_lob IS temp_blob BLOB; file_on_os BFILE := bfilename('LOBMANIP', 'append.sql'); ignore INTEGER; BEGIN ignore := dbms_lob.fileexists(file_on_os); IF ignore=1 THEN ignore := dbms_lob.fileisopen(file_on_os); IF (ignore=1) THEN null; ELSE dbms_lob.fileopen(file_on_os, dbms_lob.file_readonly); END IF; SELECT video_clip INTO temp_blob FROM lob_store WHERE lob_id = 5 FOR UPDATE; dbms_output.put_line('External file size is: ' || dbms_lob.getlength(file_on_os)); dbms_lob.loadfromfile(temp_blob,file_on_os, dbms_lob.getlength(file_on_os)); dbms_lob.fileclose(file_on_os); dbms_output.put_line('Internal BLOB size is: ' || dbms_lob.getlength(temp_blob)); ELSE dbms_output.put_line('File does not exist'); END IF; COMMIT; END;

 
Re: Re: Cargar datos en campo blob desde cliente
Enviado por nerea el día 19 de septiembre de 2003

Antes no he copiado bien el ejemplo,.....

CREATE OR REPLACE DIRECTORY "LOBMANIP" AS '/home/ficheros';

CREATE OR REPLACE PROCEDURE load_lob IS
temp_blob BLOB;
file_on_os BFILE := bfilename('LOBMANIP', 'append.sql');
ignore INTEGER;
BEGIN
ignore := dbms_lob.fileexists(file_on_os);
IF ignore=1 THEN
ignore := dbms_lob.fileisopen(file_on_os);
IF (ignore=1) THEN
null;
ELSE
dbms_lob.fileopen(file_on_os, dbms_lob.file_readonly);
END IF;
SELECT video_clip INTO temp_blob FROM lob_store WHERE lob_id = 5 FOR UPDATE;
dbms_output.put_line('External file size is: ' ||
dbms_lob.getlength(file_on_os));
dbms_lob.loadfromfile(temp_blob,file_on_os, dbms_lob.getlength(file_on_os));
dbms_lob.fileclose(file_on_os);
dbms_output.put_line('Internal BLOB size is: ' ||
dbms_lob.getlength(temp_blob));
ELSE
dbms_output.put_line('File does not exist');
END IF;
COMMIT;
END;

 
Re: Re: Re: Cargar datos en campo blob desde cliente
Enviado por david el día 19 de septiembre de 2003

El problema es que esto funciona si el fichero a pasar a la bbdd está en el servidor. Nosotros tenemos el fichero en el cliente y por esta vía Oracle no es capaz de localizar nuestro fichero.

 
Re: Re: Re: Re: Cargar datos en campo blob desde cliente
Enviado por nerea el día 19 de septiembre de 2003

Entonces no lo puedes hacer por PL/SQL, ya que el procedimiento almacenado se ejecuta en la base de datos.... tendrías que transferir el fichero primero.

¿Tiene que ser PL/SQL? ¿Podría ser una pantalla de Forms, en cliente/servidor?

 
Re: Re: Re: Re: Re: Cargar datos en campo blob desde cliente
Enviado por david el día 19 de septiembre de 2003

Debe ser por PL/SQL. ¿No existe ninguna manera de, aunque sea, pasar el fichero al servidor previamente?

 
Cargar datos en campo blob desde cliente
Enviado por igorcb el día 17 de diciembre de 2004

Yo tengo el mismo requerimiento, pero no necesito que el código sea PL/SQL me sirve un Forms, mi problema es que como los archivos no son necesariamente sonidos o imágenes entonces no puedo usar READ_IMAGE_FILE. Mi aplicación debe poder guardar cualquier tipo de archivo y también recuperarlo en el cliente ¿Alguien me puede ayudar?

 
Re: Cargar datos en campo blob desde cliente
Enviado por jc3000 el día 17 de diciembre de 2004

¿ Por que no pruebas a transferir el fichero de tu maquina cliente al servidor via FTP ?
Hay un paquete que lo puede hacer, no me acuerdo como se llama, algo parecido a UTL_FTP o algo así.
Si puedes esperar hasta el miercoles, te mando uno que utilizamos nosotros para esos menesteres.
Es que ahora estoy de vacaciones, je je je je
PD : Pero tienes que poner un post para recordarmelo....

 
Re: Re: Cargar datos en campo blob desde cliente
Enviado por francisco el día 30 de enero de 2008

Como le haco para transferir FTP archivos binarios a un directorio de oracle

 







Re: Re: Cargar datos en campo blob desde cliente
Enviado por fgh el día 1 de junio de 2006

dfghd

 



Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | amor | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados