é a primeira vez que eu presciso da aguda de vocês,
é o seguinte:
tenho um montão de imagens em vários diretórios para passar para o banco, eu pesquisei aqui e vi algo que pode me ajudar, mais meus conhecimentos não são suficientes ainda.
o que eu achei foi o seguinte:
o Thomas F. G. colocou esse cod aqui
serv:/home/oracle>ls -ltr *.jpg
-rw-r----- 1 oracle dba 262903 Jun 9 11:19 povo_do_live.jpg
serv:/home/oracle>
system:SQL>create table demo_figuras
2 ( id_figura number primary key,
3 figura blob
4 )
5 /
Tabela criada.
system:SQL>create or replace directory DIR_FIGURAS as '/home/oracle';
Diretório criado.
system:SQL>declare
2 l_blob blob;
3 l_bfile bfile;
4 begin
5 insert into demo_figuras values ( 1, empty_blob() )
6 returning figura into l_blob;
7 l_bfile := bfilename( 'DIR_FIGURAS', 'povo_do_live.jpg' );
8 dbms_lob.fileopen( l_bfile );
9 dbms_lob.loadfromfile( l_blob, l_bfile, dbms_lob.getlength( l_bfile ) );
10 dbms_lob.fileclose( l_bfile );
11 end;
12 /
Procedimento PL/SQL concluído com sucesso.
system:SQL>select id_figura, dbms_lob.getlength(figura) BYTES_GRAVADOS
2 from demo_figuras;
ID_FIGURA BYTES_GRAVADOS
---------- --------------
1 262903
system:SQL>
mais o que eu presciso é passar várias fotos dentro do diretório;
onde o id da tabela é o nome da imagem:
e fiz mais ou menos assim
create or replace directory DIR_FIGURAS as 'c:\figura';
declare
l_blob blob;
l_bfile bfile;
begin
insert into DEMO_FIGURAS values ( 2003400201002000006, empty_blob() )
returning figura into l_blob;
l_bfile := bfilename( 'DIR_FIGURAS', '2003400201002000006.jpg' );
dbms_lob.fileopen( l_bfile );
dbms_lob.loadfromfile( l_blob, l_bfile, dbms_lob.getlength( l_bfile ) );
dbms_lob.fileclose( l_bfile );
end;