terça-feira, 27 de setembro de 2011

Gravar imagem em banco de dados

UM AVISO : o sql*plus é uma tool DE SERVIDOR, cujas linguagens internas (SQL, PL/SQL, Java com JVM Oracle interno) rodam apenas NO SERVIDOR, portanto com ela vc conseguirá ler & gravar numa tabela apenas arquivos que:

a) estejam NO SERVIDOR, e
b) residam em diretório PERMITIDOS ao usuário que innstalou e possui o soft Oracle, e
c) tenham PERMISSÃO de leitura.

CASO vc queira acessar arquivos que estejam numa máquina-cliente, via sqlplus NÃO conseguirá, aí OU vc os transfere (via ftp, talvez) pro servidor OU usa uma tool/linguagem cliente (pode ser Forms, pro*C, Java, VB, Delphi, n outras). O exemplo via plus :


 

Criando a tabela

 

create table demo_figuras
( id_figura number primary key,
   figura blob )

Criando o diretório

 

create or replace directory DIR_FIGURAS as 'Z:\';

 

Script para inclusão de imagem na tabela 

 

declare
  l_blob blob;
  l_bfile bfile;
begin
  insert into demo_figuras values ( 1, empty_blob() )
  returning figura into l_blob;
  l_bfile := bfilename( 'DIR_FIGURAS', 'comprovante_creche_dezembro_2010.jpg' );
  dbms_lob.fileopen( l_bfile );
  dbms_lob.loadfromfile( l_blob, l_bfile, dbms_lob.getlength( l_bfile ) );
  dbms_lob.fileclose( l_bfile );
end;

 

 

 

 

 

Script para verificar a imagem na tabela

 

select id_figura, dbms_lob.getlength(figura) BYTES_GRAVADOS from demo_figuras

 

Maiores informações em: http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96591/toc.htm

Fonte: http://info.abril.com.br/forum-antigo/forum.php?topico=103409

Related Posts Plugin for WordPress, Blogger...