Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando conteúdo de arquivos...
-
Upload
adriano-paula -
Category
Documents
-
view
216 -
download
0
Transcript of Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando conteúdo de arquivos...
-
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
1/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 1/9
sbado, 5 de dezembro de 2009
Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY.Gerando e carregando contedo de arquivos externos ao Oracle ...
Ol,
Neste artigo irei demonstrar atravs de exemplos prticos como gerar arquivos externos ao
banco de dados, bem como ler o contedo dos mesmos atravs da package UTL_FILEdisponvel
desde a verso 7.3 do banco de dados Oracle. Em resumo, a package UTL_FILE permite que
programas escritos em PL/SQL acessem arquivos do sistema operacional para leitura e
escrita. Irei tambm demonstrar como carregar arquivos binrios para dentro de tabelas de
banco dados fazendo uso da package DBMS_LOB. Por falar em arquivos binrios, o SQL*Plus
da verso 11g j nos permite visualizar dados de colunas do tipo BLOB o que, nas verses
anteriores, no era possvel fazendo com que o SQL*Plus emitisse a mensagem "SP2-0678:
Coluna ou tipo de atributo no pode ser exibido pelo SQL*Plus". Com isso, no
precisaremos mais ficar removendo as colunas do tipo de dado BLOB em uma consulta SQL.
Enfim, ser abordado tanto o uso do j obsoleto parmetro UTL_FILE_DIR, quanto a criao
do objeto DIRECTORY responsvel por armazenar o caminho (diretrio) de sistema
operacional onde reside o banco de dados Oracle, de forma a permitir a escrita e leitura
de arquivos.
No caso de se utilizar o parmetro UTL_FILE_DIR, o comando abaixo dever ser emitido pelo
DBA (se estiver usando spfile) ou o arquivo de inicializao alterado manualmente
init[SID].ora. Aps a alterao, o banco de dados precisar ser reiniciado.
alter system set utl_file_dir = '[caminho_diretorio]' scope=spfile;
Vamos ento aos exemplos prticos. Como demonstrado abaixo, o banco de dados est com o
parmetro UTL_FILE_DIRsetado com o caminho "/tmp" que um diretrio na qual o usurio
de sistema operacional "oracle" possui permisses de leitura/escrita. Para essas
demonstraes, estou utilizando o sistema operacional Linux CentOS release 5.2 e o banco
de dados Oracle 11g (11.1.0.7.0).
C:\>sqlplus system/*****
SQL*Plus: Release 11.1.0.6.0 - Production on Sab Dez 5 13:15:32 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter utl_file_dir
NAME TYPE VALUE
----------------------------- ----------- ----------------------------
utl_file_dir string /tmp
No exempo abaixo irei gerar um arquivo simples que irei chamar de arq_teste.txtcontendo
algumas linhas de texto. Para isso, usarei a procedure PUT_LINEda package UTL_FILE.
-- Gerando o arquivode texto externo ao banco de dados
SQL> declare
2 v_arquivo utl_file.file_type;
3 begin
4 v_arquivo := utl_file.fopen('/tmp', 'arq_teste.txt', 'W');
5 utl_file.put_line(v_arquivo, 'linha 1'); 6 utl_file.put_line(v_arquivo, 'linha 2');
7 utl_file.put_line(v_arquivo, 'linha 3');
8 utl_file.put_line(v_arquivo, 'linha 4');
9 utl_file.put_line(v_arquivo, 'linha 5');
10 utl_file.fclose(v_arquivo);
11 exception
BuscaGoogle
Somente neste blog
Siga-me no Google+
Eduardo Legatti
167 seguidores
Seguir
Assine em um leitor RSS
Quem sou euEduardo Legatti
Belo Horizonte, MG, Brazil
Analista de Sistemas e Administrador debanco de dados. Sou ps graduado em
Gerncia da Tecnologia da Informao, possuoas certificaes OCA 9i - OCP 9i/10g/11g OCE
SQL Expert, e venho trabalhando como DBAOracle desde a verso 8.0.5. Me interesso
particularmente em planejar estratgias de
backup/recovery, performance tuning e
projetos de bancos de dados (modelagemfsica e lgica). Como Oracle ACE, tenho ohbito de disseminar meu conhecimento
atravs de artigos, grupos de discusso(Oracle OTN Forums) e me dedico a
compartilhar informaes de forma a motivar
novos DBAs. Siga-me no Google+
Visualizar meu perfil completo
Siga por email
Compartilhar 0 mais Prximo blog Criar um blog Login
Oracle Blog8i, 9i, 10g, 11g, 12c ...
Para melhor visualizao, recomendo resoluo de no mnimo 1024 x 768 e navegadores Mozilla Firefoxou Google Chrome
Endereo de email... Enviar
https://twitter.com/intent/follow?original_referer=http%3A%2F%2Feduardolegatti.blogspot.com.br®ion=follow_link&screen_name=eduardolegatti&source=followbutton&variant=2.0https://twitter.com/intent/follow?original_referer=http%3A%2F%2Feduardolegatti.blogspot.com.br®ion=follow_link&screen_name=eduardolegatti&source=followbutton&variant=2.0http://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams262.htmhttp://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams262.htmhttp://feeds.feedburner.com/eduardolegattihttp://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_5007.htmhttps://plus.google.com/+EduardoLegatti?prsrc=5http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/d_lob.htm#ARPLS66622http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/u_file.htmhttp://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://www.blogger.com/https://www.blogger.com/next-blog?navBar=true&blogID=6132267453407001083http://www.blogger.com/home#createhttp://www.blogger.com/https://plus.google.com/114480263519116382376?rel=authorhttp://www.google.com/intl/pt-BR/chrome/browser/http://getfirefox.com/http://eduardolegatti.blogspot.com.br/http://www.blogger.com/http://www.blogger.com/http://www.blogger.com/home#createhttps://www.blogger.com/next-blog?navBar=true&blogID=6132267453407001083http://www.blogger.com/profile/13417270391272587761https://plus.google.com/114480263519116382376?rel=authorhttps://twitter.com/intent/follow?original_referer=http%3A%2F%2Feduardolegatti.blogspot.com.br®ion=follow_link&screen_name=eduardolegatti&source=followbutton&variant=2.0http://feeds.feedburner.com/eduardolegattihttp://feeds.feedburner.com/eduardolegattihttp://www.blogger.com/follow-blog.g?blogID=6132267453407001083http://dogtranslate%28%27pt%7Ces%27%29/http://dogtranslate%28%27pt%7Cru%27%29/http://dogtranslate%28%27pt%7Cja%27%29/http://dogtranslate%28%27pt%7Cit%27%29/http://dogtranslate%28%27pt%7Cde%27%29/http://dogtranslate%28%27pt%7Cfr%27%29/http://dogtranslate%28%27pt%7Cen%27%29/http://www.blogger.com/profile/13417270391272587761https://plus.google.com/+EduardoLegatti?prsrc=5http://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams262.htmhttp://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_5007.htmhttp://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams262.htmhttp://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/d_lob.htm#ARPLS66622http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/u_file.htmhttp://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
2/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 2/9
12 when utl_file.invalid_path then
13 raise_application_error(-20000, 'Ateno! O caminho informado no ex
iste.');
14 end;
15 /
Procedimento PL/SQL concludo com sucesso.
Acessando o sistema operacional, podemos ver que o arquivo arq_teste.txtfoi criado e seu
contedo populado conforme o script PL/SQL acima.
[oracle@linux tmp]$ ls -ltotal 8
-rw-r--r-- 1 oracle oinstall 40 Dez 5 13:16 arq_teste.txt
[oracle@linux tmp]$ cat arq_teste.txtlinha 1
linha 2
linha 3
linha 4
linha 5
Para que possamos ler o contedo do arquivo que foi gerado no sistema operacional atravs
de PL/SQL, farei uso da procedure GET_LINEda package UTL_FILE.
-- Lendo o contedo do arquivo de texto gerado
SQL> set serveroutput onSQL> declare
2 v_linha varchar2(2000) := '';
3 v_arquivo utl_file.file_type;
4 begin
5 v_arquivo := utl_file.fopen('/tmp', 'arq_teste.txt', 'R');
6 loop begin
7 utl_file.get_line(v_arquivo, v_linha);
8 dbms_output.put_line('linha lida=' || v_linha);
9 exception
10 when no_data_found then
11 utl_file.fclose(v_arquivo);
12 exit;
13 end;
14 end loop;
15 end;
16 /linha lida=linha 1
linha lida=linha 2
linha lida=linha 3
linha lida=linha 4
linha lida=linha 5
Procedimento PL/SQL concludo com sucesso.
Da mesma forma que utilizamos o parmetro UTL_FILE_DIR, poderamos ter utilizado o objeto
de banco de dados DIRECTORY. O objetivo do objeto directory (diretrio) armazenar o
caminho de um diretrio de sistema operacional, assim como o parmetro UTL_FILE_DIR. A
grande vantagem que podemos criar vrios objetos que apontam para diferentes diretrios
do sistema operacional, alm de no termos que ter de efetuar o shutdown/startup da
instncia aps a sua criao como acontece com parmetro UTL_FILE_DIR. Vale a pena
salientar que podemos tambm configurar mltiplos caminhos com o parmetro UTL_FILE_DIRbastando, para isso, definirmos mais de uma entrada no arquivo de inicializao da
instncia como demonstrado no exemplo abaixo:
utl_file_dir="/u01/oradata/prod/utl_dir/"
utl_file_dir="/u02/oradata/prod/utl_dir/"
utl_file_dir="/u03/oradata/prod/utl_dir/"
No mais, o objeto DIRECTORY global no banco de dados, ou seja, no de propriedade de
nenhum usurio de banco de dados especfico (a no ser do prprio SYS). Para que os
usurio de banco de dados possam utiliz-lo, ser necessrio conceder os privilgios READ
(leitura) e/ou WRITE(escrita) dependendo de cada uso.
Como j demonstrado nos exemplos acima, irei realizar a mesma operao de escrita e
leitura em arquivos do sistema operacional mas, agora, irei fazer uso do objeto DIRECTORY
(diretrio).
SQL> create or replace directory arquivo_dir as '/tmp';
Diretrio criado.
Vale a pena salientar que os demais usurios de banco de dados devero ter os privilgios
Mais acessadosIntroduo ao conceito de Tablespaces
Reorganizando o Tablespace ...Estratgia de backup - RMAN
Um pouco sobre ndices particionadosno Oracle ...
Criando um banco de dados no modo
silencioso com o DBCARestaurando e recuperando um banco
de dados em outra mquina com o
RMANMonitorando o percentual de espaolivre na tablespace. Quando devemos
nos preocupar?Introduo ao tipo de dado TIMESTAMP
e suas variaes ...
Database Point-In-Time Recovery(DBPITR) e Tablespace Point-in-Time
Recovery (TSPITR) na prtica com oRMAN ...
Clonando um banco de dados Oraclecom o RMAN - DUPLICATE DATABASE
Ignorando caracteres acentuados,
maisculos e minsculos no Oracle (CaseInsensitive/Accent Insensitive)
IMPORT CATALOG - Mais um novocomando do RMAN no Oracle 11g
RMAN - RECOVER DROP TABLESPACE(10g vs 11g)
Certificao Oracle OCA,OCP, OCM ...
UNLIMITED TABLESPACE vs. QUOTASCriando um banco de dados standby
http://eduardolegatti.blogspot.com/2012/10/criando-um-banco-de-dados-standby-com-o.htmlhttp://eduardolegatti.blogspot.com/2012/10/criando-um-banco-de-dados-standby-com-o.htmlhttp://eduardolegatti.blogspot.com.br/2012/04/unlimited-tablespace-vs-quotas.htmlhttp://eduardolegatti.blogspot.com/2007/10/certificao-oracle-ocaocp-ocm.htmlhttp://eduardolegatti.blogspot.com.br/2012/03/rman-recover-drop-tablespace-10g-vs-11g.htmlhttp://eduardolegatti.blogspot.com.br/2012/02/import-catalog-mais-um-novo-comando-do.htmlhttp://eduardolegatti.blogspot.com.br/2013/04/ignorando-caracteres-acentuados.htmlhttp://eduardolegatti.blogspot.com/2011/07/clonando-um-banco-de-dados-oracle-com-o.htmlhttp://eduardolegatti.blogspot.com/2010/03/database-point-in-time-recovery-dbpitr.htmlhttp://eduardolegatti.blogspot.com/2009/08/introducao-ao-tipo-de-dado-timestamp-e.htmlhttp://eduardolegatti.blogspot.com.br/2013/01/monitorando-o-percentual-de-espaco.htmlhttp://eduardolegatti.blogspot.com.br/2012/01/restaurando-e-recuperando-um-banco-de.htmlhttp://eduardolegatti.blogspot.com.br/2011/10/criando-um-banco-de-dados-no-modo.htmlhttp://eduardolegatti.blogspot.com.br/2011/12/um-pouco-sobre-indices-particionados-no.htmlhttp://eduardolegatti.blogspot.com/2010/10/estrategia-de-backup-rman.htmlhttp://eduardolegatti.blogspot.com/2008/06/reorganizando-o-tablespace.htmlhttp://eduardolegatti.blogspot.com/2008/03/introduo-ao-conceito-de-tablespaces.htmlhttp://www.oracle.com/technology/software/index.htmlhttp://www.linkedin.com/in/legattihttp://www.oraclecommunity.net/https://apex.oracle.com/pls/apex/f?p=19297:4:105575139418233::NO:4:P4_ID:7340 -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
3/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 3/9
apropriados, como demonstrado pelo comando abaixo, afim de terem acesso ao objeto
DIRECTORY.
grant read, write on directory [nome_diretorio] to [usuarios...];
Continuando com a demonstrao, irei realizar os mesmos procedimentos, mas agora
utilizando o objeto directory ARQUIVO_DIRem vez do caminho fixo definido no parmetro
UTL_FILE_DIR.
-- Gerando o arquivode texto externo ao banco de dados
SQL> declare
2 v_arquivo utl_file.file_type; 3 begin
4 v_arquivo := utl_file.fopen('ARQUIVO_DIR', 'arq_teste.txt', 'W');
5 utl_file.put_line(v_arquivo, 'linha 1');
6 utl_file.put_line(v_arquivo, 'linha 2');
7 utl_file.put_line(v_arquivo, 'linha 3');
8 utl_file.put_line(v_arquivo, 'linha 4');
9 utl_file.put_line(v_arquivo, 'linha 5');
10 utl_file.fclose(v_arquivo);
11 exception
12 when utl_file.invalid_path then
13 raise_application_error(-20000, 'Ateno! O diretrio informado no
existe.');
14 end;
15 /
Procedimento PL/SQL concludo com sucesso.
-- Lendo o contedo do arquivo de texto gerado
SQL> set serveroutput on
SQL> declare
2 v_linha varchar2(2000) := '';
3 v_arquivo utl_file.file_type;
4 begin
5 v_arquivo := utl_file.fopen('ARQUIVO_DIR', 'arq_teste.txt', 'R');
6 loop begin
7 utl_file.get_line(v_arquivo, v_linha);
8 dbms_output.put_line('linha lida=' || v_linha);
9 exception
10 when no_data_found then
11 utl_file.fclose(v_arquivo);
12 exit;
13 end;
14 end loop;15 end;
16 /
linha lida=linha 1
linha lida=linha 2
linha lida=linha 3
linha lida=linha 4
linha lida=linha 5
Procedimento PL/SQL concludo com sucesso.
Caso seja informado um objeto DIRECTORY que no exista, a mensagem de erro abaixo ser
emitida:
SQL> declare
2 v_arquivo utl_file.file_type; 3 begin
4 v_arquivo := utl_file.fopen('ARQUIVO_DIR_ERRO', 'arq_teste.txt', 'W');
5 utl_file.put_line(v_arquivo, 'linha 1');
6 utl_file.put_line(v_arquivo, 'linha 2');
7 utl_file.put_line(v_arquivo, 'linha 3');
8 utl_file.put_line(v_arquivo, 'linha 4');
9 utl_file.put_line(v_arquivo, 'linha 5');
10 utl_file.fclose(v_arquivo);
11 exception
12 when utl_file.invalid_path then
13 raise_application_error(-20000, 'Ateno! O diretrio informado no
existe.');
14 end;
15 /
declare
*ERRO na linha 1:
ORA-20000: Ateno! O diretrio informado no existe.
ORA-06512: em line 13
Como parte de outra demonstrao, irei agora criar uma stored procedurede banco de dados
que carregar um arquivo binrio (imagem.jpg) para dentro de uma tabela de teste. Para
com o RMAN e abordando o ACTIVE
DATA GUARD e o SNAPSHOT STANDBY
no Oracle 11g
Um pouco sobre o particionamento porreferncia (Reference Partitioning) no
Oracle 11gBEFORE DDL TRIGGER... Protegendo
objetos no seu banco de dados Oraclecontra alteraes indevidas
RMAN - Backup Incremental Cumulativovs. Backup Incremental Diferencial
Por que aps ter realizado uma
importao, minhas tabelas no forampara o tablespace padro do usurio?
LAST_DDL_TIME vs TIMESTAMP nasviews DBA/ALL/USER_OBJECTS. Tem
diferena?DBNEWID - Alterando o nome de um
banco de dados Oracle
Interval Partitioning. Abordando umconceito de particionamento por
intervalo do Oracle 11g.Instalando o Oracle Database Express
Edition 10g Release 2 no Linux ...Executando operaes de manuteno
em tabelas particionadas no Oracle ...
Como se precaver da perda de dados
ocasionada por uma falha de discoQuem deletou os registros da tabela?
Um pouco dos pacotes UTL_SMTP e
UTL_MAIL para uso em envio de e-mailsatravs do servidor Oracle ...
Salvando o contedo de um campo
BLOB para um arquivo em disco(BLOB_TO_FILE) ...
Qual mesmo o tamanho de uma tabelano Oracle?
Capturando erros DML/DDL geradospelas sesses: Um pouco da trigger de
sistema AFTER SERVERERROREste mercado promissor? Vale a pena
a certificao?
Aplicando arquivos de redo logarquivados em um cold backup ...
Assistente de instalao para o OracleInstant Client?
Gerando backups lgicos de banco dedados no Linux atravs de um script
Perl ...
Coluna do tipo auto-incremento noOracle? Abordando o uso de sequncias
no Oracle...Um pouco do pacote UTL_FILE,
DBMS_LOB e objeto DIRECTORY.Gerando e carregando contedo de
arquivos externos ao Oracle ...
Definio de senhas case-sensitive noOracle 11g ...
UNLIMITED TABLESPACE vs. RESOURCEREAD ONLY table? Abordando uma nova
funcionalidade do Oracle 11g ...Assistente de instalao para o Oracle
Instant Client 11gNmero por extenso monetrio e
Clculo de Frmulas Matemticas
Protegendo e compactando o arquivodump de exportao com o Oracle
Export Data Pump 11g ...Descomplicando RAID 01 (0+1) e RAID 10
(1+0)Atualizando o Oracle 10g (10.2.0.1) para
(10.2.0.4) no Linux ...
Salvo pelo _allow_resetlogs_corruption
....Utlizando MD5 no Oracle para gerao
de senhas
Estgios de inicializao do Oracle(NOMOUNT | MOUNT | OPEN)
Extraindo comando DDL com o pacote
DBMS_METADATA ...
http://eduardolegatti.blogspot.com/2008/07/extraindo-comando-ddl-com-o-pacote.htmlhttp://eduardolegatti.blogspot.com/2008/02/estgios-de-inicializao-do-banco-de.htmlhttp://eduardolegatti.blogspot.com/2007/11/utlizando-md5-no-oracle-para-gerar.htmlhttp://eduardolegatti.blogspot.com/2008/12/salvo-pelo-allowresetlogscorruption.htmlhttp://eduardolegatti.blogspot.com/2008/12/atualizando-o-oracle-10g-10201-para.htmlhttp://eduardolegatti.blogspot.com/2008/03/descomplicando-raid-01-01-e-raid-10-10.htmlhttp://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.htmlhttp://eduardolegatti.blogspot.com/2007/07/nmero-por-extenso-monetrio-e-clculo-de.htmlhttp://eduardolegatti.blogspot.com/2009/02/assistente-de-instalacao-para-o-oracle.htmlhttp://eduardolegatti.blogspot.com/2008/06/read-only-table-abordando-uma-nova.htmlhttp://eduardolegatti.blogspot.com/2009/02/unlimited-tablespace-vs-resource.htmlhttp://eduardolegatti.blogspot.com/2009/06/definicao-de-senhas-case-sensitive-no.htmlhttp://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com/2008/11/coluna-do-tipo-auto-incremento-no.htmlhttp://eduardolegatti.blogspot.com/2009/09/gerando-backups-logicos-de-banco-de.htmlhttp://eduardolegatti.blogspot.com/2008/09/instalador-para-o-oracle-instant-client.htmlhttp://eduardolegatti.blogspot.com/2009/04/aplicando-arquivos-de-redo-log.htmlhttp://eduardolegatti.blogspot.com/2009/06/este-mercado-e-promissor-vale-pena.htmlhttp://eduardolegatti.blogspot.com/2010/07/capturando-erros-dmlddl-gerados-pelas.htmlhttp://eduardolegatti.blogspot.com/2011/05/qual-e-mesmo-o-tamanho-de-uma-tabela-no.htmlhttp://eduardolegatti.blogspot.com/2010/01/salvando-o-conteudo-de-um-campo-blob.htmlhttp://eduardolegatti.blogspot.com/2010/04/um-pouco-dos-pacotes-utlsmtp-e-utlmail.htmlhttp://eduardolegatti.blogspot.com/2010/06/quem-deletou-os-registros-da-tabela.htmlhttp://eduardolegatti.blogspot.com/2007/08/como-se-precaver-da-perda-de-dados.htmlhttp://eduardolegatti.blogspot.com/2011/02/executando-operacoes-de-manutencao-em.htmlhttp://eduardolegatti.blogspot.com/2008/08/instalando-o-oracle-10g-express-edition.htmlhttp://eduardolegatti.blogspot.com/2011/06/interval-partitioning-abordando-um.htmlhttp://eduardolegatti.blogspot.com/2010/12/dbnewid-alterando-o-nome-de-um-banco-de.htmlhttp://eduardolegatti.blogspot.com/2011/05/lastddltime-vs-timestamp-nas-views.htmlhttp://eduardolegatti.blogspot.com/2008/10/por-que-aps-ter-realizado-uma-importao.htmlhttp://eduardolegatti.blogspot.com.br/2012/07/rman-backup-incremental-cumulativo-vs.htmlhttp://eduardolegatti.blogspot.com.br/2012/06/before-ddl-trigger-protegendo-objetos.htmlhttp://eduardolegatti.blogspot.com.br/2012/05/um-pouco-sobre-o-particionamento-por.htmlhttp://eduardolegatti.blogspot.com/2012/10/criando-um-banco-de-dados-standby-com-o.html -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
4/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:OracleBlog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 4/9
isso, vou criar uma coluna do tipo de dado BLOB e fazer uso de alguns sub-programas
disponveis na package DBMS_LOB. No mais, irei executar os procedimentos abaixo:
-- Criando o usurio de teste
SQL> create user scott identified by tiger
2 default tablespace users
3 quota unlimited on users;
Usurio criado.
-- Concedendo privilgios bsicos
SQL> grant create session,create table, create procedure to scott;
Concesso bem-sucedida.
-- Concedendo privilgios para uso do diretrio
SQL> grant read, write on directory ARQUIVO_DIR to scott;
Concesso bem-sucedida.
Na sada do SQL abaixo, podemos ver que o usurio SCOTT possui os privilgio READ
(leitura) e WRITE(escrita) para o objeto directory ARQUIVO_DIR:
SQL> select grantor,grantee,table_name,privilege
2 from
3 all_tab_privs
4 where table_name = 'ARQUIVO_DIR';
GRANTOR GRANTEE TABLE_NAME PRIVILEGE
------------------- -------------------- ---------------------- --------------
--------
SYS SYSTEM ARQUIVO_DIR EXECUTE
SYS SYSTEM ARQUIVO_DIR READ
SYS SYSTEM ARQUIVO_DIR WRITE
SYSTEM SCOTT ARQUIVO_DIR READ
SYSTEM SCOTT ARQUIVO_DIR WRITE
-- Conectando com o usurio SCOTT
SQL> connect scott/tiger
Conectado.
-- Criando a tabela de teste
SQL> create table tab_imagem (
2 id number primary key,
3 nome varchar2(20), 4 imagem blob
5 );
Tabela criada.
-- Listando o arquivo que ser carregado para a tabela tab_imagem
[oracle@linux tmp]$ ls -l
total 4
-rw-r--r-- 1 oracle oinstall 809 Dez 5 13:25 imagem.jpg
-- Criando a stored procedure carrega_imagem
SQL> create or replace procedure carrega_imagem (p_nome_arquivo in tab_imagem.
nome%type) as
2 v_bfile bfile;
3 v_blob blob;
4 begin 5 insert into tab_imagem (id,nome,imagem)
6 values (1,p_nome_arquivo,empty_blob())
7 return imagem into v_blob;
8 v_bfile := bfilename('ARQUIVO_DIR',p_nome_arquivo);
9 dbms_lob.fileopen(v_bfile, dbms_lob.file_readonly);
10 dbms_lob.loadfromfile(v_blob,v_bfile,dbms_lob.getlength(v_bfile));
11 dbms_lob.fileclose(v_bfile);
12 commit;
13 end;
14 /
Procedimento criado.
-- Carregando o arquivo para a tabela tab_imagem
SQL> execute carrega_imagem('imagem.jpg');
Procedimento PL/SQL concludo com sucesso.
-- Verificando o tamanho (em bytes) do arquivo carregado
SQL> select dbms_lob.getlength(imagem) from tab_imagem;
DBMS_LOB.GETLENGTH(IMAGEM)
--------------------------
809
2014(2)
2013(14)
2012(12)
2011(15)
2010(12)
2009(30)
Dezembro(1)
Um pouco do pacote UTL_FILE,
DBMS_LOB e objeto DIR...
Novembro(1)
Outubro(2)
Setembro(2)
Agosto(4)
Julho(4)
Junho(4)
Maio(2)
Abril(4)
Maro(1)
Fevereiro(2)
Janeiro(3)
2008(35)
2007(14)
2006(1)
Carreira e Certificaes em TIMais de 2000 assinantes buscandodiariamente inspiraes para sua
carreira Obrigado!H 10 horas
Oracle CertificationHarness The Power Of Oracle Linux'sUnbreakable Enterprise Kernel With
Oracle Linux Certification
H 15 horas
DbaGuardSeminrio com Francisco Alvarez
Munoz - So Paulo e Porto AlegreH um dia
VictorDBA.netSeminrios GUOB - Backup Recovery
Um pouco do Flashback Versions Querye do Flashback Transaction Query
disponveis a partir do Oracle 10g ...
ltimos comentriosOl Joo, Tudo bem? Se me lembro bem,
no PostgreS...
Grande Legatti, tudo bom? J trabalhei
com Oracle...Ol Armstrong, O objetivo do artigo foi
demonstra...Otimo post! Minha dvida porque vc
nao incluiu ...Ol Vito, Obrigado pelo comentrio e
pela fora!...
Arquivo do blog
Links teisDocumentao Oracle
My Oracle Support (Metalink)
Timeline Oracle - desde 1977Forum de Discusso
GPO - Grupo de Profissionais OracleOTN Amrica Latina
askTom
Meu profile OTN forumsOracle Mix
The Official Oracle Wiki
Blogroll
http://victor-dba.blogspot.com/2014/02/seminarios-guob-backup-recovery-oracle.htmlhttp://wiki.oracle.com/http://mix.oracle.com/https://forums.oracle.com/people/EduardoLegatti/http://asktom.oracle.com/http://www.oracle.com/technology/global/lad-pt/index.htmlhttp://www.profissionaloracle.com.br/https://forums.oracle.com/community/developer/english/oracle_database/general_questionshttp://oracle.com.edgesuite.net/timeline/oracle/https://metalink.oracle.com/http://tahiti.oracle.com/http://eduardolegatti.blogspot.com/2013/12/oracle-ace.html?showComment=1390825026514#c8693954558418568225http://eduardolegatti.blogspot.com/2012/07/rman-backup-incremental-cumulativo-vs.html?showComment=1391079430404#c7268168677690514293http://eduardolegatti.blogspot.com/2012/07/rman-backup-incremental-cumulativo-vs.html?showComment=1391086017235#c2733795333984968301http://eduardolegatti.blogspot.com/2014/02/oracle-multitenant-abordando.html?showComment=1391476538800#c4131768963091179954http://eduardolegatti.blogspot.com/2014/02/oracle-multitenant-abordando.html?showComment=1391482329407#c2816673111907327482http://eduardolegatti.blogspot.com/2008/07/um-pouco-do-flashback-versions-query-e.htmlhttp://victor-dba.blogspot.com/2014/02/seminarios-guob-backup-recovery-oracle.htmlhttp://victor-dba.blogspot.com/http://databaseguard.blogspot.com/2014/02/seminario-com-francisco-alvarez-munoz.htmlhttp://databaseguard.blogspot.com/https://blogs.oracle.com/certification/entry/0925_06https://blogs.oracle.com/certification/http://feedproxy.google.com/~r/CarreirasECertificaesEmTi/~3/c31QH1vHqS8/http://carreiradeti.com.br/http://eduardolegatti.blogspot.com.br/search?updated-min=2006-01-01T00:00:00-02:00&updated-max=2007-01-01T00:00:00-02:00&max-results=1http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2007-01-01T00:00:00-02:00&updated-max=2008-01-01T00:00:00-02:00&max-results=14http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2008-01-01T00:00:00-02:00&updated-max=2009-01-01T00:00:00-02:00&max-results=35http://void%280%29/http://eduardolegatti.blogspot.com.br/2009_01_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_02_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_03_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_04_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_05_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_06_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_07_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_08_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_09_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_10_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009_11_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com.br/2009_12_01_archive.htmlhttp://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2009-01-01T00:00:00-02:00&updated-max=2010-01-01T00:00:00-02:00&max-results=30http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2010-01-01T00:00:00-02:00&updated-max=2011-01-01T00:00:00-02:00&max-results=12http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2011-01-01T00:00:00-02:00&updated-max=2012-01-01T00:00:00-02:00&max-results=15http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2012-01-01T00:00:00-02:00&updated-max=2013-01-01T00:00:00-02:00&max-results=12http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2013-01-01T00:00:00-02:00&updated-max=2014-01-01T00:00:00-02:00&max-results=14http://void%280%29/http://eduardolegatti.blogspot.com.br/search?updated-min=2014-01-01T00:00:00-02:00&updated-max=2015-01-01T00:00:00-02:00&max-results=2http://void%280%29/http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/d_lob.htm#ARPLS66622 -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
5/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 5/9
SQL> exit
Desconectado de Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64
bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Aproveitando que utilizei funo DBMS_LOB.GETLENGTHacima, tem muita gente que acha que o
valor retornado a quantidade de caracteres, o que no verdade. O valor retornado nada
mais do que o tamanho do arquivo em bytes que foi carregado do sistema operacional,
conforme mostrado abaixo:
[oracle@linux tmp]$ ls -ltotal 4
-rw-r--r-- 1 oracle oinstall 809Dez 5 13:25 imagem.jpg
Para finalizar, como mencionado no incio do artigo, o SQL*Plus das verses anteriores ao
Oracle 11g, no permitiamque o usurio visualizasse o contedo de um campo do tipo de
dado BLOB:
-- Utilizando o SQL*Plus da verso 10g
C:\>sqlplus scott/tiger
SQL*Plus: Release 10.2.0.4.0- Production on Sab Dez 5 13:28:19 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Conectado a:Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from tab_imagem;
SP2-0678: Coluna ou tipo de atributo no pode ser exibido pelo SQL*Plus
Na verso 11g do SQL*Plus, agora possvel visualizarmos o contedo de um campo do tipo
de dados BLOBcomo demonstrado abaixo. Contudo, a nica vantagem que eu vejo em relao
ao SQL*Plus das verses anteriores de que no precisaremos mais remover as colunas do
tipo de dado BLOB na hora de emitirmos um comando SELECT, embora que, visualizar dados
binrios no faz l muito sentido ...
-- Utilizando o SQL*Plus da verso 11g
C:\>sqlplus scott/tiger
SQL*Plus: Release 11.1.0.6.0- Production on Sab Dez 5 13:32:06 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from tab_imagem;
ID NOME IMAGEM
---------- ---------------- --------------------------------------------------
----------
1 imagem.jpg 47494638396109000600F70000000000B1B1B1AFAFAFA3A3A3
9999997777
777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B
3333332727
27CCCCCC191919171717111111C0C0C00D0D0D090909070707
AAAAAAA4A4
A49696968A8A8A8888887070706868686666666060605E5E5E
5C5C5C5858
58FFFFFF4848484444444040403838383232322E2E2EDDDDDD
2828282626
262424242222221E1E1E181818141414121212101010BBBBBB
080808B3B3
B3000000000000000000000000000000000000000000000000
0000000000
262424242222221E1E1E181818141414121212101010BBBBBB
080808B3B3
00000000000000000000000000000000000000000000000000
0000000000
262424242222221E1E1E181818141414121212101010BBBBBB
080808B3B3 777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B
3333332727
262424242222221E1E1E181818141414121212101010BBBBBB
080808B3B3
00000000000000000000000000000000000000000000000000
0000000000
Oracle 12cH uma semana
Blog do DBA/Instrutor Fbio PradoOracle ACE, o que isso?
H 2 semanas
Blog Flvio SoaresMatriz de certificao Oracle Database
H 3 meses
Blog do PortilhoLendas do Oracle
H 6 meses
Vinicius DBAOracle Database 12c
H 7 meses
Blog do Rodrigo AlmeidaVdeo: Desenvs e DBA Fuhrer
H 8 meses
Oracle ACEs
Rodrigo Almeida
Ricardo Portilho Proni
Rodrigo Mufalani
Antonio Jose Rodrigues Neto
Marcus Vinicius Miguel Pedro
David Siqueira
Wagner Bianchi
Victor Armbrust
Alexandre Borges
Eduardo Legatti
Fabio Prado
Alex Zaballa
Marcadores
dba(48) oracle 11g(25) oracle 10g(23) sql (23) oracle (16) tablespace
(14) desenvolvedor (13) rman (11) linux(9) segurana(9) certificao (8) oracle 9i (7)recovery(7) atualizao(6) backup (6) exame
(6) exp (6) oracle 8i (6) oracle metalink (6)
Twitter
http://eduardolegatti.blogspot.com.br/search/label/oracle%20metalinkhttp://eduardolegatti.blogspot.com.br/search/label/oracle%208ihttp://eduardolegatti.blogspot.com.br/search/label/exphttp://eduardolegatti.blogspot.com.br/search/label/examehttp://eduardolegatti.blogspot.com.br/search/label/backuphttp://eduardolegatti.blogspot.com.br/search/label/atualiza%C3%A7%C3%A3ohttp://eduardolegatti.blogspot.com.br/search/label/recoveryhttp://eduardolegatti.blogspot.com.br/search/label/oracle%209ihttp://eduardolegatti.blogspot.com.br/search/label/certifica%C3%A7%C3%A3ohttp://eduardolegatti.blogspot.com.br/search/label/seguran%C3%A7ahttp://eduardolegatti.blogspot.com.br/search/label/linuxhttp://eduardolegatti.blogspot.com.br/search/label/rmanhttp://eduardolegatti.blogspot.com.br/search/label/desenvolvedorhttp://eduardolegatti.blogspot.com.br/search/label/tablespacehttp://eduardolegatti.blogspot.com.br/search/label/oraclehttp://eduardolegatti.blogspot.com.br/search/label/sqlhttp://eduardolegatti.blogspot.com.br/search/label/oracle%2010ghttp://eduardolegatti.blogspot.com.br/search/label/oracle%2011ghttp://eduardolegatti.blogspot.com.br/search/label/dbahttps://apex.oracle.com/pls/apex/f?p=19297:4:112069536116671::NO:4:P4_ID:7480https://apex.oracle.com/pls/apex/f?p=19297:4:6023176900833::NO:4:P4_ID:7500http://apex.oracle.com/pls/apex/f?p=19297:4:105575139418233::NO:4:P4_ID:7340http://apex.oracle.com/pls/otn/f?p=19297:4:107947180825141::NO:4:P4_ID:6880http://apex.oracle.com/pls/otn/f?p=19297:4:107947180825141::NO:4:P4_ID:6800http://apex.oracle.com/pls/otn/f?p=19297:4:7594488089665562::NO:4:P4_ID:4541http://apex.oracle.com/pls/otn/f?p=19297:4:4054991364734240::NO:4:P4_ID:4563http://apex.oracle.com/pls/otn/f?p=19297:4:1034193241555358::NO:4:P4_ID:2540http://apex.oracle.com/pls/otn/f?p=19297:4:1245302532209428::NO:4:P4_ID:1340http://apex.oracle.com/pls/otn/f?p=19297:4:723572638244453::NO:4:P4_ID:1020http://apex.oracle.com/pls/otn/f?p=19297:4:7476568250147766::NO:4:P4_ID:920http://apex.oracle.com/pls/otn/f?p=19297:4:8800542398202695::NO:4:P4_ID:900http://www.rodrigoalmeida.net/blog/video-desenvs-dba-fuhrer/http://www.rodrigoalmeida.net/bloghttp://www.viniciusdba.com.br/blog/?p=1253&utm_source=rss&utm_medium=rss&utm_campaign=oracle-database-12chttp://www.viniciusdba.com.br/bloghttp://profissionaloracle.com.br/blogs/portilho/2013/08/11/lendas-do-oracle/http://profissionaloracle.com.br/blogs/portilhohttp://flaviosoares.com/2013-11/matriz-de-certificacao-oracle-database/http://flaviosoares.com/http://feedproxy.google.com/~r/fabioprado/StRk/~3/wtsUJgxJQwk/oracle-ace-o-que-e-isso.htmlhttp://www.fabioprado.net/http://victor-dba.blogspot.com/2014/02/seminarios-guob-backup-recovery-oracle.html -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
6/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 6/9
Tweet 0 1
A49696968A8A8A8888887070706868686666666060605E5E5E
5C5C5C5858
262424242222221E1E1E181818141414121212101010BBBBBB
080808B3B3
777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B
3333332727
A49696968A8A8A8888887070706868686666666060605E5E5E
5C5C5C5858
00000000000000000000000000000000000000000000000000
0000000000
262424242222221E1E1E181818141414121212101010BBBBBB
080808B3B3
00000000000000000000000000000000000000000000000000
0000000000
00000000000000000000000000000000000000000000000000
0000000000
A49696968A8A8A8888887070706868686666666060605E5E5E
5C5C5C5858
777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B
3333332727
00000000000000000000000000000000000000000000000000
0000000000
00000000000000000000000000000000000000000000000000
0000000000
00000000000000000000000000000000000000000000000000
0000000000
002C000000000900060000080E0049081C48B0A0C183081326
0C08003B00
Google+
Postado por Eduardo Legatti s 14:10
Marcadores: blob, dba, dbms_lob, directory, pl/sql, sqlplus, utl_file
Posts Relacionados
Um pouco sobre SecureFile LOBS no Oracle 11g
Salvando o contedo de um campo BLOB para um arquivo em disco (BLOB_TO_FILE) ...
Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando c ontedo de
arquivos externos ao Oracle ...
Um pouco do Oracle Text ...
Pesquisando uma palavra ou texto em um schema do banc o de dados Orac le
Um pouco do SQL*Loader
Criando um banco de dados no modo silencioso c om o DBCA
Um pouco sobre o Flashback Database 10g/11g ...
Definindo a ordem de execu o de triggers no Oracle 11g ...
Gerando sadas em formato HTML no SQL*Plus
Habilitando o suporte acentuao no pro mpt do DOS para uso do SQ L*Plus
Gerando backups fsicos de banco de dados com o RMAN atravs de um shell script no Linux ...
Gerando backups lgicos de banco de dados no Linux atravs de um script Perl ...
11 comentrios:
Oracle Database Events
Plug into the Cloud with Oracle Database 12c
Find an event near you! pub.vitrue.com/FxD6
Retweeted by Eduardo Legatti
Oracle Database
@OracleDatabase
Expand
AWSHUB Champion ;-)
awshub.com.br/profissional/e
pic.twitter.com/AAoiRMtRha
Eduardo Legatti
@eduardolegatti
Expand
Upgrades to 11g are finally complete | The
ORACLE-BASE Blog
oracle-base.com/blog/2014/02/1
Retweeted by Eduardo Lega tti
TimHall
@oraclebase
Expand
Portilho
22h
18h
12 Feb
12 Feb
Tweets Follow
Tweet to @eduardolegatti
David Ricardodisse...
Fala Eduardo, como tem passado?Bem meio "chover no molhado" dizer que o Post esta excelente,quando se trata de um profissional do seu nivel nem temos o quecomentar. Mas falando um pouco do contedo do Post, eu gosteimuito, visto que tenho pouco contato tanto com a DBMS_LOB quantocom a sua utilizao, e com seus passos com ceteza ficr maissimples caso eu necessite implementa-la ou at mesmo usa-la atitulo de testes.Forte abrao tudo de bom!!!!
8 de dezembro de 2009 15:01
Helio disse...
Eduardo,
Muito bom o post. S gostaria de esclarecer uma coisa: existe comoeu pegar de um diretrio local? De uma pasta 'C:/temp' por exemplo.Estou com a necessidade de guardar na tabela um arquivo pdf e queno estar no servidor do bd e sim na mquina local.
J pesquisei bastante e no consegui chegar em uma concluso a
http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1260291701564#c961025434131605709http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com/2010/01/salvando-o-conteudo-de-um-campo-blob.htmlhttp://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1260291701564#c961025434131605709http://www.blogger.com/profile/17048154022556712556http://legatti.wufoo.com/forms/formulario-de-contato/http://technorati.com/faves?sub=addfavbtn&add=http://eduardolegatti.blogspot.comhttp://www.addthis.com/bookmark.phphttps://twitter.com/intent/tweet?screen_name=eduardolegattihttps://twitter.com/eduardolegattihttps://twitter.com/eduardolegattihttps://twitter.com/rportilhoproni/statuses/433562141254115330https://twitter.com/oraclebase/statuses/433549815796867072https://twitter.com/eduardolegatti/statuses/433676291150057472https://twitter.com/OracleDatabase/statuses/433610210180337664https://twitter.com/rportilhopronihttps://twitter.com/oraclebase/statuses/433549815796867072https://twitter.com/oraclebasehttps://twitter.com/eduardolegattihttp://t.co/nL2KjLDa7Hhttps://twitter.com/eduardolegatti/statuses/433676291150057472https://twitter.com/eduardolegattihttp://twitter.com/eduardolegatti/status/433676291150057472/photo/1http://t.co/AAoiRMtRhahttp://t.co/0yKeP1JgBAhttps://twitter.com/OracleDatabase/statuses/433610210180337664https://twitter.com/OracleDatabasehttps://twitter.com/eduardolegattihttp://t.co/jipJ93FQARhttp://eduardolegatti.blogspot.com/2009/09/gerando-backups-logicos-de-banco-de.htmlhttp://eduardolegatti.blogspot.com/2009/10/gerando-backups-fisicos-de-banco-de.htmlhttp://eduardolegatti.blogspot.com/2011/01/habilitando-o-suporte-acentuacao-no.htmlhttp://eduardolegatti.blogspot.com/2012/09/gerando-saidas-em-formato-html-no.htmlhttp://eduardolegatti.blogspot.com/2011/08/definindo-ordem-de-execucao-de-triggers.htmlhttp://eduardolegatti.blogspot.com/2011/09/um-pouco-sobre-o-flashback-database.htmlhttp://eduardolegatti.blogspot.com/2011/10/criando-um-banco-de-dados-no-modo.htmlhttp://eduardolegatti.blogspot.com/2013/03/um-pouco-do-sqlloader.htmlhttp://eduardolegatti.blogspot.com/2013/11/pesquisando-uma-palavra-ou-texto-em-um.htmlhttp://eduardolegatti.blogspot.com/2008/06/um-pouco-do-oracle-text.htmlhttp://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com/2010/01/salvando-o-conteudo-de-um-campo-blob.htmlhttp://eduardolegatti.blogspot.com/2012/11/um-pouco-sobre-securefile-lobs-no.htmlhttp://eduardolegatti.blogspot.com.br/search/label/utl_filehttp://eduardolegatti.blogspot.com.br/search/label/sqlplushttp://eduardolegatti.blogspot.com.br/search/label/pl%2Fsqlhttp://eduardolegatti.blogspot.com.br/search/label/directoryhttp://eduardolegatti.blogspot.com.br/search/label/dbms_lobhttp://eduardolegatti.blogspot.com.br/search/label/dbahttp://eduardolegatti.blogspot.com.br/search/label/blobhttp://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttps://plus.google.com/114480263519116382376?rel=authorhttp://twitter.com/search?q=http%3A%2F%2Feduardolegatti.blogspot.com.br%2F2009%2F12%2Fum-pouco-do-pacote-utlfile-dbmslob-e.htmlhttps://twitter.com/intent/tweet?original_referer=http%3A%2F%2Feduardolegatti.blogspot.com.br%2F2009%2F12%2Fum-pouco-do-pacote-utlfile-dbmslob-e.html&text=Um%20pouco%20do%20pacote%20UTL_FILE%2C%20DBMS_LOB%20e%20objeto%20DIRECTORY.%20Gerando%20e%20carregando%20conte%C3%BAdo%20de%20arquivos%20externos%20ao%20Oracle%20...&tw_p=tweetbutton&url=http%3A%2F%2Feduardolegatti.blogspot.com.br%2F2009%2F12%2Fum-pouco-do-pacote-utlfile-dbmslob-e.html%23.UvyykcUl1A8.twitter -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
7/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 7/9
respeito.
Fico no aguardo. Obrigado!
17 de novembro de 2010 12:55
Eduardo Legattidisse...
Ol Helio,
Localmente? Via PL/SQL acho que voc no vai encontrar nada arespeito. A nica forma de voc fazer isso vai ser utilizando
ferramentas grficas PL/SQL Developer, TOAD, etc...
Abraos e at mais ...
17 de novembro de 2010 13:09
Ellen disse...
Ol Eduardo,
Seu Post foi realmente muito til, obrigada por compartilhar!!!Consegui entender muitas coisas sobre UTL_FILE, porm estou comuma dvida: voc disse que eu posso usar o UTL_FILE_DIR ou oobjeto DIRECTORY, existe como no mesmo banco eu utilizar essasduas opes? Pergunto isso pois como eu tenho objetos DIRECTORY
criados, nao consigo abrir os arquivos somente com o endereo ouUTL_FILE_DIR
25 de novembro de 2010 17:49
Eduardo Legattidisse...
Ol Ellen,
No h nenhuma restrio em utilizar as duas opes no mesmobanco de dados. Eu apenas quis demonstrar um e outro ;-)
Abraos e at mais ...
25 de novembro de 2010 18:35
Paulo Souza disse...
Ol Eduardo,
J existe algum modo de armazenar um arquivo local em tabela doOracle?
Aps muitas pesquisas, optei por perguntar a respeito.
Desde j, grato pela ateno dispensada.
5 de abril de 2011 11:22
Eduardo Legattidisse...
Ol Paulo,
Se voc est se referindo em enviar um arquivo da sua mquina(local) para uma tabela no servidor Oracle, ento somente utilizandoferramentas grficas.
Abraos e at mais ...
5 de abril de 2011 11:34
Annimo disse...
Boa tarde, qual o impacto em armazenar arquivos blob em disco ouem banco para o backup?Obrigada
11 de janeiro de 2013 17:00
Eduardo Legattidisse...
Ol Annimo,
Vejo que a sua rotina de backup ser um pouco mais complexa e ter
http://www.blogger.com/profile/13417270391272587761http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1357930833283#c6070939641930319113http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1302014087864#c5722102597262737419http://www.blogger.com/profile/13417270391272587761http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1302013349857#c3913716898116678640http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1290717350989#c2434864766814458624http://www.blogger.com/profile/13417270391272587761http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1290714566092#c3310180537558570267http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1290006560595#c6485354362012264189http://www.blogger.com/profile/13417270391272587761http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1290005704550#c7079944800680503933 -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
8/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html 8/9
Postagem mais recente Postagem mais antiga
Postar um comentrio
Incio
Downloads
Assistente de Instalao do Oracle Instant Client 10g (20M)
Assistente de Instalao do Oracle Instant Client 11g (26M)
Postagens populares
Descomplicando RAID 01 (0+1) e RAID 10 (1+0)
Ol, Quando falamos em bancos de dados, a primeira coisa que vem em nossasmentes a preocupao com a performance, mas segurana para...
Reorganizando o Tablespace ...
Ol, Dando prosseguimento ao artigo de Maro de 2008 sobre introduo ao
conceito de tablespaces, sabemos que o armazenamento dentro de u...
Certificao Oracle OCA,OCP, OCM ...Ol, O processo para obter a certificao Oracle, se resume em ter xito em um
conjunto de exames em formato eletrnico, todos em ingls ...
Monitorando o percentual de espao livre na tablespace. Quando devemos nos preocupar?
uma passo a mais, pois, alm de realizar o backup do banco dedados, voc ter que realizar o backup dos arquivos externos.Pessoalmente, no gosto da idia de gravar arquivos em disco fora dobanco de dados. Por exemplo, perdemos a recuperabilidade destainformao (point in time recovery) caso haja necessidade de algumrecover do banco de dados. Hoje em dia, com o Oracle ScureFiles emantendo o contedo do LOB (BLOB/CLOB) em tablespacesespecficas, no vejo motivos para realizar essa separao. paramaiores informaes veja os artigos Um pouco sobre SecureFile LOBSno Oracle 11ge Migrando para o SecureFile LOBS no Oracle 11g com oDBMS_REDEFINITION
Abraos
Legatti
12 de janeiro de 2013 17:06
Edmar Carvalhaesdisse...
Oi amigo tudo bem? Eu preciso disto mas para a verso do SQLServer, sabe onde eu vou achar isto? Eu preciso exatmento disto.
26 de maro de 2013 15:57
Eduardo Legattidisse...
Ol Edmar,
No SQL Server, voc pode dar uma pesquisada sobre Linked Serversou at mesmo sobre BULK INSERT, no caso de enviar contedo dearquivos externos para dentro do banco de dados.
Exemplo de um arquivo .csv:
BULK INSERT meubanco.dbo.EmployeesFROM 'C:\Data\meuarquivo.txt'WITH(DATAFILETYPE = 'char',FIELDTERMINATOR = ',',ROWTERMINATOR = '\r\n');
Abraos,
Legatti
26 de maro de 2013 17:13
http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1364328807014#c1097061268046706606http://www.blogger.com/profile/13417270391272587761http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1364324220492#c4438814396317557206http://www.blogger.com/profile/09169868211799168044http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html?showComment=1358017598853#c2965872189748113214http://eduardolegatti.blogspot.com.br/2012/12/migrando-para-o-securefile-lobs-no.htmlhttp://eduardolegatti.blogspot.com.br/2012/11/um-pouco-sobre-securefile-lobs-no.htmlhttp://eduardolegatti.blogspot.com.br/2013/01/monitorando-o-percentual-de-espaco.htmlhttp://eduardolegatti.blogspot.com.br/2007/10/certificao-oracle-ocaocp-ocm.htmlhttp://eduardolegatti.blogspot.com.br/2008/06/reorganizando-o-tablespace.htmlhttp://eduardolegatti.blogspot.com.br/2008/03/descomplicando-raid-01-01-e-raid-10-10.htmlhttp://eduardolegatti.blogspot.com/2009/02/assistente-de-instalacao-para-o-oracle.htmlhttp://eduardolegatti.blogspot.com/2008/09/instalador-para-o-oracle-instant-client.htmlhttp://eduardolegatti.blogspot.com.br/http://www.blogger.com/comment.g?blogID=6132267453407001083&postID=2120351553094493486http://eduardolegatti.blogspot.com.br/2007/10/certificao-oracle-ocaocp-ocm.htmlhttp://eduardolegatti.blogspot.com.br/2008/06/reorganizando-o-tablespace.htmlhttp://eduardolegatti.blogspot.com.br/2008/03/descomplicando-raid-01-01-e-raid-10-10.htmlhttp://eduardolegatti.blogspot.com.br/2009/11/realizando-downloads-do-site-da-oracle.htmlhttp://eduardolegatti.blogspot.com.br/2010/01/salvando-o-conteudo-de-um-campo-blob.html -
7/22/2019 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos exte
9/9
13/2/2014 Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando contedo de arquivos externos ao Oracle ...:Oracle Blog
http://eduardolegatti blogspot com br/2009/12/um pouco do pacote utlfile dbmslob e html 9/9
Ol, Para qualquer DBA, o monitoramento constante e preventivo do banco dedados fundamental. Se o mesmo no for monitorado de forma c...
Restaurando e recuperando um banco de dados em outra mquina com o RMAN
Ol, Imagine um cenrio de desastre completo, ou seja, o servidor de banco de
dados sofreu uma pane na qual no s o software Oracle se co...
Um pouco do Oracle SQL Developer ...
Ol, Par a os fs do velho e bom SQL*PLUS , TOAD (uso comercial, mas possui
verso gratuita co m limitaes) e PL/SQL DEVELOPER (uso c...
Removendo registros duplicados de uma tabela usando o ROWID
Ol, Antes de demonstrar como remover linhas duplicadas de uma tabela, irei comentar um
pouco sobre o que ROWID (estendido) no Oracle. ...
Introduo ao conceito de restries de integridade adiveis (DEFERRABLE CONSTRAINTS)
Ol, Neste artigo irei demonstrar a aplicao e uso da restrio (constraint) adivel (deferrable)que um recurso disponvel desde a ver...
Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregandocontedo de arquivos externos ao Oracle ...
Ol, Neste artigo irei demonstrar atravs de exemplos prticos como gerar arquivos externos ao
banco de dados, bem como ler o contedo d...
Oracle Multitenant: Abordando a arquitetura e criao do Container Database
(CDB) e Pluggable Databases no Oracle 12c
Ol, Como j abordado no artigo de Junho/2013 , o Oracle Database 12c agora
suporta uma nova arquitetura ( option ) chamada Multit...
logBlogs.Com.Br
Oracle Blog by Eduardo Legattiis licensed under a Creative Commons Atribuio-Uso No-Comercial 2.5 Brasil License.
Oracle Blog no se responsabiliza pelo uso dos c digos e informae s aqui fornecidas.
http://creativecommons.org/licenses/by-nc/2.5/br/http://eduardolegatti.blogspot.com/http://creativecommons.org/licenses/by-nc/2.5/br/http://blogblogs.com.br/api/claim/-789398096/223508/160795http://eduardolegatti.blogspot.com.br/2014/02/oracle-multitenant-abordando.htmlhttp://eduardolegatti.blogspot.com.br/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.htmlhttp://eduardolegatti.blogspot.com.br/2010/08/introducao-ao-conceito-de-restricoes-de.htmlhttp://eduardolegatti.blogspot.com.br/2007/12/removendo-registros-duplicados-de-uma.htmlhttp://eduardolegatti.blogspot.com.br/2008/05/um-pouco-do-oracle-sql-developer.htmlhttp://eduardolegatti.blogspot.com.br/2012/01/restaurando-e-recuperando-um-banco-de.htmlhttp://eduardolegatti.blogspot.com.br/2014/02/oracle-multitenant-abordando.htmlhttp://eduardolegatti.blogspot.com.br/2008/05/um-pouco-do-oracle-sql-developer.htmlhttp://eduardolegatti.blogspot.com.br/2012/01/restaurando-e-recuperando-um-banco-de.htmlhttp://eduardolegatti.blogspot.com.br/2013/01/monitorando-o-percentual-de-espaco.html