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.