Blog do Eduardo Costa Meu blog pessoal

29Out/100

Exemplo básico de LOBs no Oracle

Após pesquisar um pouco na Internet, descobri que a pior parte de usar LOBs no banco Oracle é a falta de um exemplo simples. Carregar e gravar imagens na pasta física do banco é fácil de encontrar. Usar arquivos do cliente (ex: Forms), nem tanto.

Eis um snippet para gravar qualquer tipo de conteúdo em um blob (assumindo uma tabela "tb_teste" com os campos "id integer" e "img blob", com um registro "(1, empty_blob())"):

DECLARE
 x   BLOB;
 buf raw(10);
 amount INTEGER := 5;
BEGIN
 SELECT img INTO x FROM tb_teste WHERE id = 1 FOR UPDATE;
 
 buf := '1234567890';
 dbms_lob.WRITE(x, 5, 1, buf);
 commit;
 
 buf := '0000000000';
 SELECT img INTO x FROM tb_teste WHERE id = 1;
 dbms_lob.READ(x, amount, 1, buf);
 
 dbms_output.put_line(buf);
END;
/

Com a vantagem que é um bloco fácil de adaptar para Java, Forms, etc.

Comentários (0) Trackbacks (0)

Sem comentários


Leave a comment

(required)


*

Sem trackbacks