<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-6132267453407001083</id><updated>2010-01-01T00:38:18.046-02:00</updated><title type='text'>Oracle Blog</title><subtitle type='html'>8i, 9i, 10g, 11g ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default?start-index=26&amp;max-results=25'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-2120351553094493486</id><published>2009-12-05T14:10:00.004-02:00</published><updated>2009-12-07T20:29:49.964-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='utl_file'/><category scheme='http://www.blogger.com/atom/ns#' term='directory'/><category scheme='http://www.blogger.com/atom/ns#' term='pl/sql'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='dbms_lob'/><category scheme='http://www.blogger.com/atom/ns#' term='blob'/><title type='text'>Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando conteúdo de arquivos externos ao Oracle ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Neste artigo irei demonstrar através de exemplos práticos como gerar arquivos externos ao banco de dados, bem como ler o conteúdo dos mesmos através da package &lt;a href="http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/u_file.htm"&gt;UTL_FILE&lt;/a&gt; disponível desde a versão 7.3 do banco de dados Oracle. Em resumo, a package UTL_FILE permite que programas escritos em &lt;span style="color: rgb(51, 51, 255);"&gt;PL/SQL&lt;/span&gt; acessem arquivos do sistema operacional para leitura e escrita. Irei também demonstrar como carregar arquivos binários para dentro de tabelas de banco dados fazendo uso da package &lt;a href="http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/d_lob.htm#ARPLS66622"&gt;DBMS_LOB&lt;/a&gt;. Por falar em arquivos binários, o SQL*Plus da versão 11g já nos permite visualizar dados de colunas do tipo BLOB o que, nas versões anteriores, não era possível fazendo com que o SQL*Plus emitisse a mensagem "&lt;span style="color: rgb(255, 0, 0);"&gt;SP2-0678: Coluna ou tipo de atributo não pode ser exibido pelo SQL*Plus&lt;/span&gt;". Com isso, não precisaremos mais ficar removendo as colunas do tipo de dado BLOB em uma consulta SQL.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Enfim, será abordado tanto o uso do já obsoleto parâmetro &lt;a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams262.htm"&gt;UTL_FILE_DIR&lt;/a&gt;, quanto a criação do objeto &lt;a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e10592/statements_5007.htm"&gt;DIRECTORY&lt;/a&gt; responsável por armazenar o caminho (diretório) de sistema operacional onde reside o banco de dados Oracle, de forma a permitir a escrita e leitura de arquivos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No caso de se utilizar o parâmetro &lt;a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e10820/initparams262.htm"&gt;UTL_FILE_DIR&lt;/a&gt;, o comando abaixo deverá ser emitido pelo DBA (&lt;span style="color: rgb(51, 51, 255);"&gt;se estiver usando spfile&lt;/span&gt;) ou o arquivo de inicialização alterado manualmente &lt;span style="color: rgb(51, 51, 255);"&gt;init[SID].ora&lt;/span&gt;. Após a alteração, o banco de dados precisará ser reiniciado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;font-size:85%;"  &gt;alter system set utl_file_dir = '[caminho_diretorio]' scope=spfile;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vamos então aos exemplos práticos. Como demonstrado abaixo, o banco de dados está com o parâmetro &lt;span style="color: rgb(51, 51, 255);"&gt;UTL_FILE_DIR&lt;/span&gt; setado com o caminho "&lt;span style="color: rgb(51, 51, 255);"&gt;/tmp&lt;/span&gt;" que é um diretório na qual o usuário de sistema operacional "oracle" possui permissões de leitura/escrita. Para essas demonstrações, estou utilizando o sistema operacional Linux CentOS release 5.2 e o banco de dados Oracle 11g (11.1.0.7.0).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt;sqlplus system/*****&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 11.1.0.6.0 - Production on Sab Dez 5 13:15:32 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; show parameter utl_file_dir&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NAME                          TYPE        VALUE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------------------------- ----------- ----------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utl_file_dir                  string      /tmp&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No exempo abaixo irei gerar um arquivo simples que irei chamar de &lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt; contendo algumas linhas de texto. Para isso, usarei a procedure &lt;span style="font-weight: bold;"&gt;PUT_LINE&lt;/span&gt; da package UTL_FILE.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Gerando o arquivo&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; de texto externo ao banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; declare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    v_arquivo utl_file.file_type;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4    v_arquivo := utl_file.fopen('&lt;span style="color: rgb(51, 51, 255);"&gt;/tmp&lt;/span&gt;', '&lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt;', 'W');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5    utl_file.put_line(v_arquivo, 'linha 1');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    utl_file.put_line(v_arquivo, 'linha 2');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7    utl_file.put_line(v_arquivo, 'linha 3');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8    utl_file.put_line(v_arquivo, 'linha 4');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9    utl_file.put_line(v_arquivo, 'linha 5');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10    utl_file.fclose(v_arquivo);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 11  exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 12    when utl_file.invalid_path then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 13       raise_application_error(-20000, 'Atenção! O caminho informado não existe.');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 14  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 15  /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Acessando o sistema operacional, podemos ver que o arquivo &lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt; foi criado e seu conteúdo populado conforme o script PL/SQL acima.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux tmp]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle oinstall   40 Dez 5 13:16 arq_teste.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux tmp]$ &lt;span style="font-weight: bold;"&gt;cat arq_teste.txt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha 2&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha 3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha 5&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para que possamos ler o conteúdo do arquivo que foi gerado no sistema operacional através de PL/SQL, farei uso da procedure &lt;span style="font-weight: bold;"&gt;GET_LINE&lt;/span&gt; da package UTL_FILE.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Lendo o conteúdo do arquivo de texto gerado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; set serveroutput on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; declare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    v_linha varchar2(2000) := '';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3    v_arquivo utl_file.file_type;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5    v_arquivo := utl_file.fopen('&lt;span style="color: rgb(51, 51, 255);"&gt;/tmp&lt;/span&gt;', '&lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt;', 'R');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    loop begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7      utl_file.get_line(v_arquivo, v_linha);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8      dbms_output.put_line('linha lida=' || v_linha);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9      exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10        when no_data_found then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 11        utl_file.fclose(v_arquivo);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 12        exit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 13      end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 14    end loop;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 15  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 16  /&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 2&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 3&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 4&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Da mesma forma que utilizamos o parâmetro &lt;span style="color: rgb(51, 51, 255);"&gt;UTL_FILE_DIR&lt;/span&gt;, poderíamos ter utilizado o objeto de banco de dados &lt;span style="color: rgb(51, 51, 255);"&gt;DIRECTORY&lt;/span&gt;. O objetivo do objeto directory (diretório) é armazenar o caminho de um diretório de sistema operacional, assim como o parâmetro UTL_FILE_DIR. &lt;span style="font-weight: bold;"&gt;A grande vantagem é que podemos criar vários objetos que apontam para diferentes diretórios do sistema operacional, além de não termos que ter de efetuar o shutdown/startup da instância após a sua criação como acontece com parâmetro UTL_FILE_DIR&lt;/span&gt;. Vale a pena salientar que podemos também configurar múltiplos caminhos com o parâmetro UTL_FILE_DIR bastando, para isso, definirmos mais de uma entrada no arquivo de inicialização da instância como demonstrado no exemplo abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:85%;"  &gt;utl_file_dir="/u01/oradata/prod/utl_dir/"&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;utl_file_dir="/u02/oradata/prod/utl_dir/"&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(255, 102, 0);"&gt;utl_file_dir="/u03/oradata/prod/utl_dir/"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No mais, o objeto DIRECTORY é global no banco de dados, ou seja, &lt;span style="font-weight: bold;"&gt;não é de propriedade de nenhum usuário de banco de dados específico (a não ser do próprio SYS)&lt;/span&gt;. Para que os usuário de banco de dados possam utilizá-lo, será necessário conceder os privilégios &lt;span style="color: rgb(51, 51, 255);"&gt;READ&lt;/span&gt; (leitura) e/ou &lt;span style="color: rgb(255, 0, 0);"&gt;WRITE&lt;/span&gt; (escrita) dependendo de cada uso.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como já demonstrado nos exemplos acima, irei realizar a mesma operação de escrita e leitura em arquivos do sistema operacional mas, agora, irei fazer uso do objeto DIRECTORY (diretório).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; create or replace directory arquivo_dir as '/tmp';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Diretório criado.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vale a pena salientar que os demais usuários de banco de dados deverão ter os privilégios apropriados, como demonstrado pelo comando abaixo, afim de terem acesso ao objeto DIRECTORY.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;grant read, write on directory [nome_diretorio] to [usuarios...];&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Continuando com a demonstração, irei realizar os mesmos procedimentos, mas agora utilizando o objeto directory &lt;span style="color: rgb(51, 51, 255);"&gt;ARQUIVO_DIR&lt;/span&gt; em vez do caminho fixo definido no parâmetro UTL_FILE_DIR.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Gerando o arquivo&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; de texto externo ao banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; declare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    v_arquivo utl_file.file_type;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4    v_arquivo := utl_file.fopen('&lt;span style="color: rgb(51, 51, 255);"&gt;ARQUIVO_DIR&lt;/span&gt;', '&lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt;', 'W');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5    utl_file.put_line(v_arquivo, 'linha 1');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    utl_file.put_line(v_arquivo, 'linha 2');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7    utl_file.put_line(v_arquivo, 'linha 3');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8    utl_file.put_line(v_arquivo, 'linha 4');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9    utl_file.put_line(v_arquivo, 'linha 5');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10    utl_file.fclose(v_arquivo);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 11  exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 12    when utl_file.invalid_path then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 13       raise_application_error(-20000, 'Atenção! O diretório informado não existe.');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 14  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 15  /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Lendo o conteúdo do arquivo de texto gerado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; set serveroutput on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; declare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    v_linha varchar2(2000) := '';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3    v_arquivo utl_file.file_type;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5    v_arquivo := utl_file.fopen('&lt;span style="color: rgb(51, 51, 255);"&gt;ARQUIVO_DIR&lt;/span&gt;', '&lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt;', 'R');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    loop begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7      utl_file.get_line(v_arquivo, v_linha);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8      dbms_output.put_line('linha lida=' || v_linha);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9      exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10        when no_data_found then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 11        utl_file.fclose(v_arquivo);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 12        exit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 13      end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 14    end loop;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 15  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 16  /&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 2&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 3&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 4&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;linha lida=linha 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Caso seja informado um objeto DIRECTORY que não exista, a mensagem de erro abaixo será emitida:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; declare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    v_arquivo utl_file.file_type;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4    v_arquivo := utl_file.fopen('&lt;span style="color: rgb(255, 0, 0);"&gt;ARQUIVO_DIR_ERRO&lt;/span&gt;', '&lt;span style="color: rgb(0, 153, 0);"&gt;arq_teste.txt&lt;/span&gt;', 'W');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5    utl_file.put_line(v_arquivo, 'linha 1');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    utl_file.put_line(v_arquivo, 'linha 2');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7    utl_file.put_line(v_arquivo, 'linha 3');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8    utl_file.put_line(v_arquivo, 'linha 4');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9    utl_file.put_line(v_arquivo, 'linha 5');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10    utl_file.fclose(v_arquivo);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 11  exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 12    when utl_file.invalid_path then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 13       raise_application_error(-20000, 'Atenção! O diretório informado não existe.');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 14  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 15  /&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;declare&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;*&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ERRO na linha 1:&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-20000: Atenção! O diretório informado não existe.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-06512: em line 13&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como parte de outra demonstração, irei agora criar uma &lt;span style="font-weight: bold;"&gt;stored procedure&lt;/span&gt; de banco de dados que carregará um arquivo binário (&lt;span style="color: rgb(0, 153, 0);"&gt;imagem.jpg&lt;/span&gt;) para dentro de uma tabela de teste. Para isso, vou criar uma coluna do tipo de dado BLOB e fazer uso de alguns sub-programas disponíveis na package &lt;a href="http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/d_lob.htm#ARPLS66622"&gt;DBMS_LOB&lt;/a&gt;. No mais, irei executar os procedimentos abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Criando o usuário de teste&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create user scott identified by tiger&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  default tablespace users&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  quota unlimited on users;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Concedendo privilégios básicos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; grant create session,create table, create procedure to scott;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Concessão bem-sucedida.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Concedendo privilégios para uso do diretório&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; grant read, write on directory ARQUIVO_DIR to scott;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Concessão bem-sucedida.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Na saída do SQL abaixo, podemos ver que o usuário SCOTT possui os privilégio &lt;span style="color: rgb(51, 51, 255);"&gt;READ&lt;/span&gt; (leitura) e &lt;span style="color: rgb(255, 0, 0);"&gt;WRITE&lt;/span&gt; (escrita) para o objeto directory ARQUIVO_DIR:&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select grantor,grantee,table_name,privilege&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  from&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  all_tab_privs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  where table_name = 'ARQUIVO_DIR';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;GRANTOR             GRANTEE              TABLE_NAME             PRIVILEGE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------- -------------------- ---------------------- ----------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS                 SYSTEM               ARQUIVO_DIR            EXECUTE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS                 SYSTEM               ARQUIVO_DIR            READ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS                 SYSTEM               ARQUIVO_DIR            WRITE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;SYSTEM              SCOTT                ARQUIVO_DIR            READ&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SYSTEM              SCOTT                ARQUIVO_DIR            WRITE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Conectando com o usuário SCOTT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; connect scott/tiger&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Criando a tabela de teste&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table tab_imagem (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    id number primary key,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3    nome varchar2(20),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4    imagem blob&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Tabela criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Listando o arquivo que será carregado para a tabela tab_imagem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux tmp]$ ls -l&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle oinstall 809 Dez 5 13:25 imagem.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Criando a stored procedure carrega_imagem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create or replace procedure carrega_imagem (p_nome_arquivo in tab_imagem.nome%type) as&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2   v_bfile bfile;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3   v_blob blob;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5    insert into tab_imagem (id,nome,imagem)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    values (1,p_nome_arquivo,empty_blob())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7    return imagem into v_blob;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8    v_bfile := bfilename('&lt;span style="color: rgb(51, 51, 255);"&gt;ARQUIVO_DIR&lt;/span&gt;',p_nome_arquivo);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9    dbms_lob.fileopen(v_bfile, dbms_lob.file_readonly);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10    dbms_lob.loadfromfile(v_blob,v_bfile,dbms_lob.getlength(v_bfile));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 11    dbms_lob.fileclose(v_bfile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 12    commit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 13  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 14  /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Carregando o arquivo para a tabela tab_imagem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; execute carrega_imagem('imagem.jpg');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando o tamanho (em bytes) do arquivo carregado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select dbms_lob.getlength(imagem) from tab_imagem;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DBMS_LOB.GETLENGTH(IMAGEM)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       &lt;span style="color: rgb(255, 0, 0);"&gt;809&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; exit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Desconectado de Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Aproveitando que utilizei função &lt;span style="color: rgb(51, 51, 255);"&gt;DBMS_LOB.GETLENGTH&lt;/span&gt; acima, tem muita gente que acha que o valor retornado é a quantidade de caracteres, o que não é verdade. &lt;span style="font-weight: bold;"&gt;O valor retornado nada mais é do que o tamanho do arquivo em bytes que foi carregado do sistema operacional&lt;/span&gt;, conforme mostrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux tmp]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle oinstall &lt;span style="color: rgb(255, 0, 0);"&gt;809&lt;/span&gt; Dez 5 13:25 imagem.jpg&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para finalizar, como mencionado no início do artigo, o SQL*Plus das versões anteriores ao Oracle 11g, &lt;span style="font-weight: bold;"&gt;não permitiam&lt;/span&gt; que o usuário visualizasse o conteúdo de um campo do tipo de dado BLOB:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o SQL*Plus da versão 10g&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt;sqlplus scott/tiger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release &lt;span style="color: rgb(51, 51, 255);"&gt;10.2.0.4.0&lt;/span&gt; - Production on Sab Dez 5 13:28:19 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from tab_imagem;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;SP2-0678: Coluna ou tipo de atributo não pode ser exibido pelo SQL*Plus&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Na versão 11g do SQL*Plus, &lt;span style="font-weight: bold;"&gt;agora é possível visualizarmos o conteúdo de um campo do tipo de dados BLOB&lt;/span&gt; como demonstrado abaixo. Contudo, a única vantagem que eu vejo em relação ao SQL*Plus das versões anteriores é de que não precisaremos mais remover as colunas do tipo de dado BLOB na hora de emitirmos um comando SELECT, embora que, visualizar dados binários não faz lá muito sentido ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o SQL*Plus da versão 11g&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt;sqlplus scott/tiger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release &lt;span style="color: rgb(255, 0, 0);"&gt;11.1.0.6.0&lt;/span&gt; - Production on Sab Dez 5 13:32:06 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from tab_imagem;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ID NOME             IMAGEM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------------- ------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 imagem.jpg       47494638396109000600F70000000000B1B1B1AFAFAFA3A3A39999997777&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B3333332727&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            27CCCCCC191919171717111111C0C0C00D0D0D090909070707AAAAAAA4A4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            A49696968A8A8A8888887070706868686666666060605E5E5E5C5C5C5858&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            58FFFFFF4848484444444040403838383232322E2E2EDDDDDD2828282626&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            262424242222221E1E1E181818141414121212101010BBBBBB080808B3B3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            B30000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            262424242222221E1E1E181818141414121212101010BBBBBB080808B3B3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            262424242222221E1E1E181818141414121212101010BBBBBB080808B3B3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B3333332727&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            262424242222221E1E1E181818141414121212101010BBBBBB080808B3B3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            A49696968A8A8A8888887070706868686666666060605E5E5E5C5C5C5858&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            262424242222221E1E1E181818141414121212101010BBBBBB080808B3B3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B3333332727&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            A49696968A8A8A8888887070706868686666666060605E5E5E5C5C5C5858&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            262424242222221E1E1E181818141414121212101010BBBBBB080808B3B3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            A49696968A8A8A8888887070706868686666666060605E5E5E5C5C5C5858&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            777171716B6B6B5555554B4B4B3F3F3F3D3D3DEEEEEE3B3B3B3333332727&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            000000000000000000000000000000000000000000000000000000000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                            002C000000000900060000080E0049081C48B0A0C1830813260C08003B00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-2120351553094493486?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/2120351553094493486/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=2120351553094493486' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/2120351553094493486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/2120351553094493486'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/12/um-pouco-do-pacote-utlfile-dbmslob-e.html' title='Um pouco do pacote UTL_FILE, DBMS_LOB e objeto DIRECTORY. Gerando e carregando conteúdo de arquivos externos ao Oracle ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-1124004013049695402</id><published>2009-11-07T17:39:00.006-02:00</published><updated>2009-11-07T18:00:42.268-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='my oracle support'/><category scheme='http://www.blogger.com/atom/ns#' term='wget'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle metalink'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><title type='text'>Realizando downloads do site da Oracle com o WGET ...</title><content type='html'>&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Recentemente, a Oracle colocou uma mensagem em seu servidor FTP (&lt;span style="color: rgb(51, 51, 255);"&gt;updates.oracle.com&lt;/span&gt;) informando que não será mais possível baixar atualizações (Patches &amp;amp; Updates) através do mesmo e que, as atualizações, só poderão ser baixadas diretamente do site My Oracle Support (&lt;a href="http://eduardolegatti.blogspot.com/2008/09/seja-bem-vindo-my-oracle-support-adeus.html"&gt;antigo Metalink&lt;/a&gt;) como mostrado abaixo:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Connected to updates.oraclegha.com.&lt;/span&gt;&lt;br /&gt;220 FTP server ready.&lt;br /&gt;Name (updates.oracle.com:legatti): &lt;span style="font-weight: bold;"&gt;legatti&lt;/span&gt;&lt;br /&gt;331 Username OK, please send password.&lt;br /&gt;Password: &lt;span style="font-weight: bold;"&gt;*********&lt;/span&gt;&lt;br /&gt;230-&lt;br /&gt;230-           Welcome to the Oracle Patch Download FTP Server&lt;br /&gt;230-&lt;br /&gt;230-*************************************************************************&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  This service will be retired on November 06, 2009 and "My  Oracle Support"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  will be the only interface for downloading the patches and updates. To&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  search and download patches from "My Oracle Support" users are required&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  to login to https://metalink.oracle.com and then go to "Patches &amp;amp; Updates"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  tab.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  Alternatively users can download patches using command line download&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);"&gt;230-  manager utilities like "wget".&lt;/span&gt;&lt;br /&gt;230-&lt;br /&gt;230-  Examples on how to use wget:&lt;br /&gt;230-&lt;br /&gt;230-   - Check "wget" command is available OR install it&lt;br /&gt;230-   - Login to "My Oracle Support" on any browser&lt;br /&gt;230-   - Search for the patch&lt;br /&gt;230-   - Go to the download page&lt;br /&gt;230-   - Right Mouse Click on the Download Button&lt;br /&gt;230-   - Click on the properties&lt;br /&gt;230-   - Copy the address from the properties&lt;br /&gt;230-   - Run the following command using your metalink login and password&lt;br /&gt;230-&lt;br /&gt;230-   wget --http-user=&lt;username&gt; --http-password=&lt;password&gt;&lt;/password&gt;&lt;/username&gt;&lt;br /&gt;230-   --output-document=&lt;filename&gt;&lt;/filename&gt;&lt;br /&gt;230-   "Paste the above copied address here in quotes"&lt;br /&gt;230-&lt;br /&gt;230-   For example, the wget command for patch# 6880880, for Linux Platform&lt;br /&gt;230-&lt;br /&gt;230-  wget -http-user=john.doe@oracle.com -http-password=xxxxxxxx --output-document=p6880880_102000_LINUX.zip "http://updates.oracle.com/ARULink/Download/process_form/p6880880_102000_LINUX.zip?aru=11447016&amp;amp;file_id=23740960&amp;amp;patch_file=p6880880_102000_LINUX.zip&amp;amp;email=john.doe@oracle.com&amp;amp;userid=04394&amp;amp;"&lt;br /&gt;230-&lt;br /&gt;230-*************************************************************************&lt;br /&gt;230-&lt;br /&gt;230- For detailed help, use command "quote site help".&lt;br /&gt;230&lt;br /&gt;Remote system type is UNIX.&lt;br /&gt;Using binary mode to transfer files.&lt;br /&gt;ftp&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;De acordo com a mensagem, uma outra alternativa será a de usar o utilitário &lt;span style="font-weight: bold;"&gt;wget&lt;/span&gt; que é um programa livre que propicia o download de dados da web muito utilizado em sistemas Linux/Unix, e que já foi portado para diversos ambientes como Mac OS X, Microsoft Windows e OpenVMS.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Mas, e quanto aos softwares disponíveis na &lt;a href="http://www.oracle.com/technology/software/index.html"&gt;seção de downloads do site Oracle&lt;/a&gt;? Bom, também poderemos utilizar o &lt;span style="font-weight: bold;"&gt;wget&lt;/span&gt; para baixá-los sem que tenhamos que utilizar o navegador para isso. Já que precisamos informar o nosso login e senha para baixar-mos o software em questão, isso não será um problema pois, com o &lt;span style="font-weight: bold;"&gt;wget&lt;/span&gt;, poderemos informar também os dados de login.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Abaixo está uma pequena demonstração da utilização do &lt;span style="font-weight: bold;"&gt;wget&lt;/span&gt; do qual farei uso para baixar o &lt;span style="color: rgb(0, 153, 0);"&gt;Oracle Database 11g&lt;/span&gt; do site da Oracle. No mais, para ambientes Windows, será necessário baixar o utilitário que poderá ser encontrado &lt;a href="http://users.ugent.be/%7Ebpuype/wget/"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;C:\&gt;wget --no-check-certificate -vv --post-data="globalId=&amp;amp;redirectUrl=&lt;span style="color: rgb(0, 153, 0);"&gt;http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip&lt;/span&gt;&amp;amp;username=&lt;span style="color: rgb(51, 51, 255);"&gt;[seu_usuario]&lt;/span&gt;&amp;amp;password=&lt;span style="color: rgb(51, 51, 255);"&gt;[sua_senha]&lt;/span&gt;&amp;amp;submit=Continue" &lt;span style="color: rgb(255, 0, 0);"&gt;https://profile.oracle.com/jsp/reg/loginHandler.jsp&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;--2009-11-07 17:30:08--  https://profile.oracle.com/jsp/reg/loginHandler.jsp&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Resolving profile.oracle.com... 141.146.8.116&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Connecting to profile.oracle.com|141.146.8.116|:443... connected.&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;WARNING: cannot verify profile.oracle.com's certificate, issued by '/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)05/CN=VeriSign Class 3 Secure Server CA':&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;  Unable to locally verify the issuer's authority.&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;HTTP request sent, awaiting response... 302 Moved Temporarily&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Location: http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip [following]&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;--2009-11-07 17:30:16--  http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Resolving download.oracle.com... 208.111.133.53, 208.111.133.54&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Connecting to download.oracle.com|208.111.133.53|:80... connected.&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;HTTP request sent, awaiting response... 200 OK&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Length: 1239269270 (1.2G) [application/zip]&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Saving to: 'linux.x64_11gR2_database_1of2.zip'&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 9% [====&gt;                                     ] 75,519,546  110K/s  eta 3h 12m&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-1124004013049695402?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/1124004013049695402/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=1124004013049695402' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/1124004013049695402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/1124004013049695402'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/11/realizando-downloads-do-site-da-oracle.html' title='Realizando downloads do site da Oracle com o WGET ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-4423007831290874452</id><published>2009-10-28T21:55:00.006-02:00</published><updated>2009-10-29T13:49:19.008-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pearson vue'/><category scheme='http://www.blogger.com/atom/ns#' term='oca'/><category scheme='http://www.blogger.com/atom/ns#' term='carreira'/><category scheme='http://www.blogger.com/atom/ns#' term='exame'/><category scheme='http://www.blogger.com/atom/ns#' term='certificação'/><category scheme='http://www.blogger.com/atom/ns#' term='ocm'/><category scheme='http://www.blogger.com/atom/ns#' term='ocp'/><category scheme='http://www.blogger.com/atom/ns#' term='certview'/><title type='text'>Programa de Certificação da Oracle lança o portal CertView</title><content type='html'>&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;No início deste mês (Outubro/2009), a equipe do programa de certificação da Oracle lançou um sistema, ou melhor, &lt;span style="font-weight: bold;"&gt;um portal&lt;/span&gt; para todos aqueles profissionais, detentores  ou não, de alguma certificação da Oracle. O nome deste portal é o &lt;a href="http://certview.oracle.com/"&gt;CertView&lt;/a&gt; e pode ser acessado através do endereço &lt;a href="http://certview.oracle.com/"&gt;http://certview.oracle.com&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Bom, só agora estou abordando este assunto pelo fato de apenas recentemente, eu ter conseguido logar com sucesso no portal. Enfim, foram algumas semanas enviando e-mails para a equipe do programa de certificação da Oracle através do e-mail &lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;ocpexam_ww@oracle.com&lt;/span&gt;&lt;/span&gt;, até receber uma resposta informando que o meu acesso havia sido autorizado.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;No mais, o CertView nos dará de forma online a capacidade de:&lt;br /&gt;&lt;/span&gt;&lt;ul style="font-family: courier new;font-family:courier new;" &gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Visualizarmos nosso histórico de exames de certificação realizados&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Visualizarmos nossas informações demográficas (endereço, cidade, país, etc...)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Baixar os logos autorizados e oficiais referentes aos nossos certificados&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Visualizarmos nosso histórico de certificações&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Obtermos informações sobre o status do nosso kit certificação que é enviado pela Oracle&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt; Enviarmos informações sobre a nossa certificação à terceiros&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;Em relação a esta última, o interessante é que poderemos enviar por e-mail para qualquer pessoa, uma autorização &lt;span style="font-weight: bold;"&gt;para que a mesma visualize informações sobre a nossa certificação&lt;/span&gt;. Ao receber o e-mail, o destinatário poderá clicar em um link privado e fornecer uma chave (código) contendo a autorização para visualização das informações dos certificados. Esta autorização é enviada pelo próprio portal CertView ao e-mail do destinatário em questão. Vale a pena salientar que o link e a chave de autorização possuem uma data de validade, ou seja, &lt;span style="color: rgb(255, 0, 0);"&gt;ambas &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;expiram em 5 dias&lt;/span&gt; à partir do recebimento do e-mail&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt; pelo destinatário.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a style="font-family: courier new;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0YJ39t-zN8U/SujcLs6G_MI/AAAAAAAAAgo/8KmWIU7qN7Q/s1600-h/certview.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 243px;" src="http://3.bp.blogspot.com/_0YJ39t-zN8U/SujcLs6G_MI/AAAAAAAAAgo/8KmWIU7qN7Q/s320/certview.png" alt="" id="BLOGGER_PHOTO_ID_5397806246995098818" border="0" /&gt;&lt;/a&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;Vale a pena salientar que o CertView está disponível gratuitamente a todos os candidatos certificados ou não, e poderá ser acessado usando uma conta Oracle Single Sign On (SSO) cadastrada previamente.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;a style="font-family: courier new;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0YJ39t-zN8U/SujcWeohckI/AAAAAAAAAgw/2KXYeVvXDOM/s1600-h/login.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 268px;" src="http://1.bp.blogspot.com/_0YJ39t-zN8U/SujcWeohckI/AAAAAAAAAgw/2KXYeVvXDOM/s320/login.png" alt="" id="BLOGGER_PHOTO_ID_5397806432141800002" border="0" /&gt;&lt;/a&gt;  &lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Para tal, o candidato precisará fornecer suas informações demográficas à &lt;a href="http://www.vue.com/"&gt;Pearson VUE&lt;/a&gt;, a nova empresa parceira da Oracle e provedora dos exames de certificação. Como todos já sabem, &lt;a href="http://eduardolegatti.blogspot.com/2009/09/seja-bem-vindo-pearson-vue-adeus.html"&gt;a Prometric não é mais a provedora dos exames da Oracle&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;Para finalizar, abaixo está um vídeo de boas vindas com mais informações sobre o novo portal CertView.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="364" width="445"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tqjL0ZafPJQ&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/tqjL0ZafPJQ&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="364" width="445"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-4423007831290874452?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/4423007831290874452/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=4423007831290874452' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4423007831290874452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4423007831290874452'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/10/programa-de-certificacao-da-oracle.html' title='Programa de Certificação da Oracle lança o portal CertView'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0YJ39t-zN8U/SujcLs6G_MI/AAAAAAAAAgo/8KmWIU7qN7Q/s72-c/certview.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-4543312627515867610</id><published>2009-10-06T11:20:00.002-03:00</published><updated>2009-10-06T12:55:40.089-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='archivelog'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='backup físico'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='rman'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 10g'/><category scheme='http://www.blogger.com/atom/ns#' term='noarchivelog'/><title type='text'>Gerando backups físicos de banco de dados com o RMAN através de um shell script no Linux ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No &lt;a href="http://eduardolegatti.blogspot.com/2009/09/gerando-backups-logicos-de-banco-de.html"&gt;artigo anterior&lt;/a&gt; eu disponibilizei um script feito em "&lt;span style="color: rgb(255, 0, 0);"&gt;perl&lt;/span&gt;" para geração de backup lógico (FULL export) do banco de dados através dos utilitários de exportação (exp/expdp). Neste artigo irei disponibilizar um shell script para geração de backup físico através do utilitário &lt;span style="color: rgb(255, 0, 0);"&gt;RMAN (Recovery Manager)&lt;/span&gt;. Para quem já conhece o &lt;span style="font-weight: bold;"&gt;RMAN&lt;/span&gt;, não precisa nem dizer que o mesmo é um utilitário usado no gerenciamento de operações de backup e na restauração e recuperação de bancos de dados Oracle.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apesar do OEM Database Console (10g/11g) disponibilizar &lt;span style="font-weight: bold;"&gt;de forma simples e fácil uma interface para gerenciamento, configuração e agendamento de backups físicos do banco de dados&lt;/span&gt;, um script para geração de backups, em alguns casos, poderá ser bem útil.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/SstQxqc06yI/AAAAAAAAAgQ/XxVuCiaTTEU/s1600-h/hard-disk.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/SstQxqc06yI/AAAAAAAAAgQ/XxVuCiaTTEU/s1600-h/hard-disk.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 255px; height: 192px;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SstQxqc06yI/AAAAAAAAAgQ/XxVuCiaTTEU/s320/hard-disk.jpg" alt="" id="BLOGGER_PHOTO_ID_5389490193217940258" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No mais, o shell script (ou script em shell) demonstrado logo mais abaixo, tem como &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;base &lt;span style="color: rgb(51, 51, 255);"&gt;o mesmo script fornecido pela instalação do Oracle Express Edition para Linux&lt;/span&gt;, mas &lt;span style="font-weight: bold;"&gt;com algumas alterações&lt;/span&gt; realizadas por mim de forma que sejam realizadas algumas operações tais como, backup completo do banco de dados juntamente com os arquivos de redo log arquivados (caso o banco esteja no modo ARCHIVELOG), deleção destes mesmos arquivos de redo log arquivados (após a realização do backup, deleção de backups obsoletos (dependendo da política de retenção utilizada), remoção de arquivos de backup expirados, geração do arquivo de inicialização em modo texto (pfile), geração de arquivo de log com o resultado dos comandos realizados pelo RMAN, entre outros.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;Vale a pena salientar que este script foi testado nas versões do Oracle 10g e 11g e funcionará &lt;span style="font-weight: bold;"&gt;supondo que apenas uma instância de banco de dados esteja em execução tendo o arquivo de controle (control file) como repositório do RMAN, e que a Flash Recovery Area (FRA) esteja habilitada&lt;/span&gt;. O script também detecta o &lt;a href="http://eduardolegatti.blogspot.com/2007/08/como-se-precaver-da-perda-de-dados.html"&gt;modo de operação do banco de dados&lt;/a&gt; alvo (&lt;span style="color: rgb(255, 0, 0);"&gt;ARCHIVELOG&lt;/span&gt; ou &lt;span style="color: rgb(51, 51, 255);"&gt;NOARCHIVELOG&lt;/span&gt;), pois para bancos de dados operando no modo NOARCHIVELOG, é necessário que seja realizado o shutdown do mesmo antes da realização do backup. Após a realização do backup, o banco de dados será reaberto. Para bancos de dados operando no modo ARCHIVELOG, o backup será realizado de forma online. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Dependendo da política de retenção utilizada, os backups dos arquivos de banco de dados serão armazenados na &lt;span style="font-weight: bold;"&gt;Flash Recovery Area&lt;/span&gt; e dois arquivos textos de log serão criados para armazenar os procedimentos realizados. Os arquivos de log serão criados em &lt;span style="color: rgb(51, 51, 255);"&gt;$HOME/log_rman_ultimo.log&lt;/span&gt; e $&lt;span style="color: rgb(51, 51, 255);"&gt;HOME/log_rman_anterior.log&lt;/span&gt; conforme demonstração logo mais abaixo. O script deverá ser executado com algum usuário de sistema operacional membro do grupo "&lt;span style="color: rgb(255, 0, 0);"&gt;dba&lt;/span&gt;", de preferência o usuário "&lt;span style="color: rgb(255, 0, 0);"&gt;oracle&lt;/span&gt;" e, poderá também quando necessário, ser agendado a sua execução através do utilitário de sistema operacional "cron".&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Script de backup para uso do utilitário RMAN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Este script assume que o usuário pode se conectar no banco de dados usando a sintaxe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# "/ as sysdba" e que a Flash Recovery Area esteja habilitada.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# =============================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Procedimento de Backup - RMAN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# =============================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Para bancos de dados operando no modo NOARCHIVELOG, será realizado o shutdown do banco&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# de dados antes da realização do backup. Após a realização do backup, o banco de dados &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# será reaberto.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Para bancos de dados operando no modo ARCHIVELOG, o backup será realizado de forma&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# online. Dependendo da política de retenção utilizada, os backups serão armazenados na&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Flash Recovery Area e dois arquivos textos de log serão criados para armazenar os &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# procedimentos realizados. Os arquivos de log serão criados em &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# $HOME/log_rman_ultimo.log e $HOME/log_rman_anterior.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;user=`/usr/bin/whoami`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;group=`/usr/bin/groups $user | grep dba`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if test -z "$group"; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo A operação falhou. $user não é membro do grupo \'dba\'.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   exit 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TMPDIR=/tmp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rman_backup_current=$HOME/log_rman_ultimo.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rman_backup_prev=$HOME/log_rman_anterior.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Criando um log temporário para a execução&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rman_backup=${TMPDIR}/rman_backup$$.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo 'Log de Backup do RMAN' &gt; $rman_backup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Verificando se a flash recovery area está habilitada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rman_fra=${TMPDIR}/rman_fra$$.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlplus /nolog &gt; $rman_fra &lt;&lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   connect / as sysdba;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set head off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set echo off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set trimspool on;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set linesize 512;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   select '$' || count(*) || '$' from v\$parameter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    where upper(name)='DB_RECOVERY_FILE_DEST'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      and value is not null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fra=`grep "^$.*$" $rman_fra`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rm -f $rman_fra&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ X$fra = X\$1\$ ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   failed=false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   failed=true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   errstr="A área de recuperação flash não está habilitada"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Verificando a localização da flash recovery area&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rman_fralocation=${TMPDIR}/rman_fralocation$$.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlplus /nolog &gt; $rman_fralocation &lt;&lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   connect / as sysdba;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set head off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set echo off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set trimspool on;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set linesize 512;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   select '$' || value || '$' from v\$parameter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    where upper(name)='DB_RECOVERY_FILE_DEST'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      and value is not null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fralocation=`grep "^$.*$" $rman_fralocation`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fralocation=${fralocation#*$}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fralocation=${fralocation%"$"*}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rm -f $rman_fralocation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Verificando o nome da instância do banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rman_instancename=${TMPDIR}/rman_instancename$$.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlplus /nolog &gt; $rman_instancename &lt;&lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   connect / as sysdba;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set head off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set echo off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set trimspool on;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   set linesize 512;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   select '$' || instance_name || '$' from v\$instance;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instancename=`grep "^$.*$" $rman_instancename`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instancename=${instancename#*$}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instancename=${instancename%"$"*}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;rm -f $rman_instancename&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ $failed = 'false' ] ; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;#Verificando o modo de operação do banco de dados&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   rman_log_mode=${TMPDIR}/rman_log_mode$$.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   sqlplus /nolog &gt; $rman_log_mode &lt;&lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      connect / as sysdba;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      set head off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      set echo off;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      set trimspool on;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      set linesize 512;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      select '$' || log_mode || '$' from v\$database;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   mode=`grep "^$.*$" $rman_log_mode`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   rm -f $rman_log_mode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   case $mode in&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      \$ARCHIVELOG\$)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      echo "Realizando Backup Online (ARCHIVELOG) do Banco de Dados..."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rman target / &gt;&gt; $rman_backup &lt;&lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         set echo on;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         show all;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         report schema;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         sql "create pfile=''$fralocation/init$instancename.ora'' from spfile";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         crosscheck archivelog all;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         sql 'alter system archive log current';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         backup full database plus archivelog delete all input;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         crosscheck backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         delete noprompt expired backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         delete noprompt obsolete;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if [ $? = 0 ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         failed=false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         failed=true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         errstr="RMAN error: Veja o arquivo de log para mais detalhes"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      fi;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      ;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      \$NOARCHIVELOG\$)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      echo "Realizando Backup Offline (NOARCHIVELOG) do Banco de Dados..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      rman target / &gt;&gt; $rman_backup &lt;&lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         set echo on; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         show all;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         report schema;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         sql "create pfile=''$fralocation/init$instancename.ora'' from spfile";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         shutdown immediate;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         startup mount;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         backup as backupset device type disk database;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         alter database open;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         crosscheck backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         delete noprompt expired backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         delete noprompt obsolete;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EOF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if [ $? = 0 ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         failed=false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         failed=true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         errstr="RMAN error: Veja o arquivo de log para mais detalhes"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      fi;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      ;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      *)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      errstr="Modo de Banco de dados desconhecido: $mode"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      failed=true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      ;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   esac;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Gravando o erro no arquivo de log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ $failed = 'true' ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo ${errstr}. &gt;&gt; $rman_backup&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Renomeando o último arquivo de log como anterior&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ -f $rman_backup_current ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   mv -f $rman_backup_current $rman_backup_prev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Gravando o arquivo de log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mv -f $rman_backup $rman_backup_current&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;#Mostrando o resultado para o usuário em caso de erro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ $failed = 'true' ] ; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo '===================== ERRO ========================='&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo '         Falha de backup de banco de dados          '&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo '===================== ERRO ========================='&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo ${errstr}.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo O arquivo de log está em $rman_backup_current&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo Backup do banco de dados realizado com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   echo O arquivo de log está em $rman_backup_current&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O arquivo &lt;span style="color: rgb(0, 153, 0);"&gt;bkpora_rman&lt;/span&gt; criado abaixo contém o shell script acima que realizará o backup físico do banco de dados.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 44&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxrwx--- 3 oracle dba  4096 Set 30 15:14 app&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-xr-x 2 oracle dba 20480 Set 30 15:46 archive&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-xr-x 2 oracle dba  4096 Out  3 14:14 export&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-xr-x 3 oracle dba  4096 Out  5 14:22 flash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rwxr--r-- 1 oracle dba  5406 Out  6 08:12 &lt;span style="color: rgb(0, 153, 0);"&gt;bkpora_rman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como já dito anteriormente, caso o usuário que esteja executando o script não for membro do grupo "dba", então o erro abaixo será emitido:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;su -&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Senha: ******&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# cd /u01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux u01]# &lt;span style="font-weight: bold;"&gt;./bkpora_rman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;A operação falhou. root não é membro do grupo 'dba'.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Bom, voltando ao usário "oracle", irei realizar a execução do script shell como demonstrado abaixo. A propósito, caso a &lt;span style="color: rgb(51, 51, 255);"&gt;Flash Recovery Area&lt;/span&gt; não esteja habilitada, então o erro abaixo será emitido:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;./bkpora_rman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;===================== ERRO =========================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;         Falha de backup de banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;===================== ERRO =========================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;A área de recuperação flash não está habilitada&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;O arquivo de log está em /home/oracle/log_rman_ultimo.log&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No mais, irei checar algumas informações do banco de dados alvo antes de executar o script de backup:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux ~]$ &lt;span style="font-weight: bold;"&gt;sqlplus / as sysdba&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 10.2.0.4.0 - Production on Ter Out 6 08:29:12 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando se a FRA está habilitada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; show parameter db_recovery&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NAME                           TYPE        VALUE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------------ ----------- -------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;db_recovery_file_dest          string      &lt;span style="color: rgb(51, 51, 255);"&gt;/u01/flash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;db_recovery_file_dest_size     big integer &lt;span style="color: rgb(51, 51, 255);"&gt;30G&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando o modo de operação do banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; archive log list&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Modo log de banco de dados     &lt;span style="color: rgb(255, 0, 0);"&gt;Modo de Arquivamento&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Arquivamento automático        &lt;span style="color: rgb(255, 0, 0);"&gt;Ativado&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Destino de arquivamento        &lt;span style="color: rgb(255, 0, 0);"&gt;/u01/archive/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;A seqüência de log on-line mais antiga 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Próxima seqüência de log a arquivar    9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Seqüência de log atual                 9&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após finalizada a verificação de algumas das informações acima, irei executar o script de backup como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;./bkpora_rman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Realizando Backup Online (&lt;span style="color: rgb(255, 0, 0);"&gt;ARCHIVELOG&lt;/span&gt;) do Banco de Dados...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Backup do banco de dados realizado com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;O arquivo de log está em /home/oracle/log_rman_ultimo.log&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após a execução do backup, irei checar as informações do arquivo de log criado.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux ~]$ &lt;span style="font-weight: bold;"&gt;ls -l $HOME/*.log&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle oinstall 6755 Out 6 08:32 &lt;span style="color: rgb(0, 153, 0);"&gt;/home/oracle/log_rman_ultimo.log&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;cat /home/oracle/log_rman_ultimo.log&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Log de Backup do RMAN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Gerenciador de Recuperação: Release 10.2.0.4.0 - Production on Ter Out 6 08:36:59 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conectado ao banco de dados de destino: BD01 (DBID=2949935972)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RMAN&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;eco ativado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; show all;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;usar o arquivo de controle do banco de dados de destino em vez do catálogo de recuperação&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;os parâmetros de configuração RMAN são:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE BACKUP OPTIMIZATION OFF; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE CONTROLFILE AUTOBACKUP ON;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE MAXSETSIZE TO UNLIMITED; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ENCRYPTION FOR DATABASE OFF; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE SNAPSHOT CONTROLFILE NAME TO '$ORACLE_HOME/dbs/snapcf_BD01.f'; # default&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; report schema;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Relatório do esquema do banco de dados&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Lista de Arquivos de Dados Permanentes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;======================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;File Size(MB) Tablespace           RB segs Datafile Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---- -------- -------------------- ------- ------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1    300      SYSTEM               ***     /u01/app/oracle/oradata/BD01/system01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2    200      UNDOTBS1             ***     /u01/app/oracle/oradata/BD01/undotbs01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;3    120      SYSAUX               ***     /u01/app/oracle/oradata/BD01/sysaux01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4    21       USERS                ***     /u01/app/oracle/oradata/BD01/users01.dbf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Lista de Arquivos Temporários&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;=============================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;File Size(MB) Tablespace           Maxsize(MB) Tempfile Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---- -------- -------------------- ----------- ---------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1    20       TEMP                 32767       /u01/app/oracle/oradata/BD01/temp01.dbf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; sql "create pfile=''/u01/flash/initBD01.ora'' from spfile";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instrução sql: create pfile=''/u01/flash/initBD01.ora'' from spfile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; crosscheck archivelog all;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal alocado: ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: sid=147 devtype=DISK&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;validação bem-sucedida no log arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_4_686230057.dbf id reg.=111 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;validação bem-sucedida no log arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_5_686230057.dbf id reg.=112 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;validação bem-sucedida no log arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_6_686230057.dbf id reg.=113 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;validação bem-sucedida no log arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_7_686230057.dbf id reg.=114 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;validação bem-sucedida no log arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_8_686230057.dbf id reg.=115 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;validação bem-sucedida no log arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_9_686230057.dbf id reg.=116 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Fez a verificação cruzada de 6 objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; sql 'alter system archive log current';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instrução sql: alter system archive log current&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; backup full database plus archivelog delete all input;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log atual arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando conjunto de backups de log de arquivamento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: especificando log(s) de arquivamento no conjunto de backups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=4 id reg.=111 marcação=698859945&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=5 id reg.=112 marcação=698859947&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=6 id reg.=113 marcação=698859951&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=7 id reg.=114 marcação=698859957&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=8 id reg.=115 marcação=698859963&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=9 id reg.=116 marcação=698927352&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=10 id reg.=117 marcação=698929025&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=11 id reg.=118 marcação=698929025&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando o componente 1 em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: componente 1 finalizado em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG20091006T1057...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: deletando log(s) de arquivamento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_4_686230057.dbf id reg.=111 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_5_686230057.dbf id reg.=112 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_6_686230057.dbf id reg.=113 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_7_686230057.dbf id reg.=114 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_8_686230057.dbf id reg.=115 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_9_686230057.dbf id reg.=116 marc...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_10_686230057.dbf id reg.=117 mar...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_11_686230057.dbf id reg.=118 mar...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Finalizado backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: especificando arquivo(s) de dados no conjunto de backups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00001 name=/u01/app/oracle/oradata/BD01/system01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00002 name=/u01/app/oracle/oradata/BD01/undotbs01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00003 name=/u01/app/oracle/oradata/BD01/sysaux01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00004 name=/u01/app/oracle/oradata/BD01/users01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando o componente 1 em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: componente 1 finalizado em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente=/u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG20091006T1057...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:04:05&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Finalizado backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log atual arquivado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando conjunto de backups de log de arquivamento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: especificando log(s) de arquivamento no conjunto de backups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;log de arquivamento thread de entrada=1 seqüência=12 id reg.=119 marcação=698929289&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando o componente 1 em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: componente 1 finalizado em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG20091006T1101...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:00:05&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: deletando log(s) de arquivamento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome do arquivo de log de arquivamento=/u01/archive/1_12_686230057.dbf id reg.=119 mar...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Finalizado backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando Control File and SPFILE Autobackup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente=/u01/flash/BD01/autobackup/2009_10_06/o1_mf_s_698929294_5d6s61ws_...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Finalizado Control File and SPFILE Autobackup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; crosscheck backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/autobackup/2009_10_06/o1_mf_s_698929294...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Fez a verificação cruzada de 4 objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; delete noprompt expired backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; delete noprompt obsolete;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;a política de retenção RMAN será aplicada ao comando&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;a política de retenção RMAN está definida para a redundância 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Deletando os seguintes backups e cópias obsoletas:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Type                 Key    Completion Time    Filename/Handle&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------- ------ ------------------ ------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conjunto de Backups  61     06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Parte de Backup      61     06/10/2009         /u01/flash/BD01/backupset/2009_10_06/o1...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup deletado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Deletou 1 objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RMAN&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Recovery Manager completo.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei realizar outro teste só que, agora, alterando o &lt;a href="http://eduardolegatti.blogspot.com/2007/08/como-se-precaver-da-perda-de-dados.html"&gt;modo de operação do banco de dados&lt;/a&gt; para NOARCHIVELOG.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;sqlplus / as sysdba&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 10.2.0.4.0 - Production on Ter Out 6 08:45:12 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; shutdown immediate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Banco de dados fechado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Banco de dados desmontado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Instância ORACLE desativada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; startup mount&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Instância ORACLE iniciada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Total System Global Area  155189248 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Fixed Size                  1266320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Variable Size             113249648 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Database Buffers           37748736 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Redo Buffers                2924544 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Banco de dados montado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; alter database noarchivelog;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Banco de dados alterado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; alter database open;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Banco de dados alterado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; archive log list&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Modo log de banco de dados   &lt;span style="color: rgb(51, 51, 255);"&gt;Modo Sem Arquivamento&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Arquivamento automático      &lt;span style="color: rgb(51, 51, 255);"&gt;Desativado&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Destino de arquivamento      /u01/archive/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;A seqüência de log on-line mais antiga     11&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Seqüência de log atual                     13&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; exit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apenas para fins de demonstração, caso eu tente realizar o backup do banco de dados sem antes realizar o shutdown do mesmo, o RMAN irá emitir um erro como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux ~]$ &lt;span style="font-weight: bold;"&gt;rman target /&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Gerenciador de Recuperação: Release 10.2.0.4.0 - Production on Ter Out 6 09:10:49 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conectado ao banco de dados de destino: BD01 (DBID=2949935972)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; backup database;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;usar o arquivo de controle do banco de dados de destino em vez do catálogo de recuperação&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal alocado: ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: sid=147 devtype=DISK&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: especificando arquivo(s) de dados no conjunto de backups&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;RMAN-00571: ===========================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;RMAN-00571: ===========================================================&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;RMAN-03009: falha do comando backup no canal de ORA_DISK_1 em 06/10/2009 09:11:12&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;ORA-19602: não pode copiar ou fazer backup de arquivo ativo no modo NOARCHIVELOG&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RMAN&gt; exit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Recovery Manager completo.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como mencionado anteriormente, o script de backup irá detectar o modo de operação do banco de dados, então o mesmo automaticamente irá realizar o shutdown da instância caso o banco de dados esteja configurado para operar no modo &lt;span style="color: rgb(51, 51, 255);"&gt;NOARCHIVELOG&lt;/span&gt; e, após a realização do backup, o script irá realizar o startup da instância e abertura do banco de dados.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ &lt;span style="font-weight: bold;"&gt;./bkpora_rman&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Realizando Backup Offline (&lt;span style="color: rgb(51, 51, 255);"&gt;NOARCHIVELOG&lt;/span&gt;) do Banco de Dados...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Backup do banco de dados realizado com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;O arquivo de log está em /home/oracle/log_rman_ultimo.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando o arquivo de log gerado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux u01]$ cat /home/oracle/log_rman_ultimo.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Log de Backup do RMAN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Gerenciador de Recuperação: Release 10.2.0.4.0 - Production on Ter Out 6 09:23:56 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conectado ao banco de dados de destino: BD01 (DBID=2949935972)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RMAN&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;eco ativado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; show all;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;usar o arquivo de controle do banco de dados de destino em vez do catálogo de recuperação&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;os parâmetros de configuração RMAN são:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE BACKUP OPTIMIZATION OFF; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE CONTROLFILE AUTOBACKUP ON;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE MAXSETSIZE TO UNLIMITED; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ENCRYPTION FOR DATABASE OFF; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CONFIGURE SNAPSHOT CONTROLFILE NAME TO '$ORACLE_HOME/dbs/snapcf_BD01.f'; # default&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; report schema;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Relatório do esquema do banco de dados&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Lista de Arquivos de Dados Permanentes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;======================================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;File Size(MB) Tablespace           RB segs Datafile Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---- -------- -------------------- ------- ------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1    300      SYSTEM               ***     /u01/app/oracle/oradata/BD01/system01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2    200      UNDOTBS1             ***     /u01/app/oracle/oradata/BD01/undotbs01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;3    120      SYSAUX               ***     /u01/app/oracle/oradata/BD01/sysaux01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4    21       USERS                ***     /u01/app/oracle/oradata/BD01/users01.dbf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Lista de Arquivos Temporários&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;=============================&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;File Size(MB) Tablespace           Maxsize(MB) Tempfile Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---- -------- -------------------- ----------- ---------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1    20       TEMP                 32767       /u01/app/oracle/oradata/BD01/temp01.dbf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; sql "create pfile=''/u01/flash/initBD01.ora'' from spfile";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instrução sql: create pfile=''/u01/flash/initBD01.ora'' from spfile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; shutdown immediate;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;banco de dados fechado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;banco de dados desmontado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;encerramento de instância Oracle&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; startup mount;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conectado ao banco de dados de destino (não iniciado)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;instância Oracle iniciada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;banco de dados montado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Total da Área Global do Sistema     155189248 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Fixed Size                     1266320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Variable Size                113249648 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Database Buffers              37748736 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Redo Buffers                   2924544 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; backup as backupset device type disk database;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal alocado: ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: sid=157 devtype=DISK&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando conjunto de backup completo de arquivo de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: especificando arquivo(s) de dados no conjunto de backups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00001 name=/u01/app/oracle/oradata/BD01/system01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00002 name=/u01/app/oracle/oradata/BD01/undotbs01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00003 name=/u01/app/oracle/oradata/BD01/sysaux01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fno=00004 name=/u01/app/oracle/oradata/BD01/users01.dbf do arquivo de dados de entrada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: iniciando o componente 1 em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: componente 1 finalizado em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente=/u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG20091006T1118...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;canal ORA_DISK_1: conjunto de backups concluído, tempo decorrido: 00:04:29&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Finalizado backup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando Control File and SPFILE Autobackup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente=/u01/flash/BD01/autobackup/2009_10_06/o1_mf_s_698930288_5d6tfssw_...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Finalizado Control File and SPFILE Autobackup em 06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; alter database open;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;banco de dados aberto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; crosscheck backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/autobackup/2009_10_06/o1_mf_s_698929294...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup submetido a verificação cruzada: localizado como 'AVAILABLE'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/autobackup/2009_10_06/o1_mf_s_698930288...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Fez a verificação cruzada de 5 objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; delete noprompt expired backup;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;RMAN&gt; delete noprompt obsolete;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;a política de retenção RMAN será aplicada ao comando&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;a política de retenção RMAN está definida para a redundância 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;utilizando o canal ORA_DISK_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Deletando os seguintes backups e cópias obsoletas:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Type                 Key    Completion Time    Filename/Handle&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------- ------ ------------------ ------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conjunto de Backups  62     06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Parte de Backup      62     06/10/2009         /u01/flash/BD01/backupset/2009_10_06/o1...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conjunto de Backups  63     06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Parte de Backup      63     06/10/2009         /u01/flash/BD01/backupset/2009_10_06/o1...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conjunto de Backups  64     06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Parte de Backup      64     06/10/2009         /u01/flash/BD01/autobackup/2009_10_06/o...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup deletado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup deletado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/backupset/2009_10_06/o1_mf_annnn_TAG200...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;componente de backup deletado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;handle de componente de backup=/u01/flash/BD01/autobackup/2009_10_06/o1_mf_s_698929294...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Deletou 3 objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;RMAN&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Recovery Manager completo.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após finalizado o backup físico, poderemos checar através do RMAN as informações sobre o backup que foi realizado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux flash]$ &lt;span style="font-weight: bold;"&gt;rman target /&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Gerenciador de Recuperação: Release 10.2.0.4.0 - Production on Ter Out 6 09:35:16 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conectado ao banco de dados de destino: BD01 (DBID=2949935972)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;RMAN&gt; list backup of database;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;usar o arquivo de controle do banco de dados de destino em vez do catálogo de recuperação&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Lista de Conjuntos de Backup&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;============================&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BS Key  Type LV Size       Device Type Elapsed Time Completion Time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------- ---- -- ---------- ----------- ------------ -------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;67      Full    289.28M    DISK        00:03:01     06/10/2009&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Chave BP: 67   Status: AVAILABLE  Compactado: NO  Tag: TAG20091006T112920&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        Nome do Componente: /u01/flash/BD01/backupset/2009_10_06/o1_mf_nnndf_TAG200910...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Lista de Arquivos de Dados no conjunto de backup 67&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  File LV Type Ckp SCN    Tempo de Verif. Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ---- -- ---- ---------- --------------- ------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  1       Full 258379     06/10/2009      /u01/app/oracle/oradata/BD01/system01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2       Full 258379     06/10/2009      /u01/app/oracle/oradata/BD01/undotbs01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3       Full 258379     06/10/2009      /u01/app/oracle/oradata/BD01/sysaux01.dbf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4       Full 258379     06/10/2009      /u01/app/oracle/oradata/BD01/users01.dbf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;RMAN&gt; list backup summary;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Lista de Backups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;================&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------- -- -- - ----------- --------------- ------- ------- ---------- ------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;67      B  F  A DISK        06/10/2009      1       1       NO         TAG20091006T112920&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;68      B  F  A DISK        06/10/2009      1       1       NO         TAG20091006T113229&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando o conteúdo do diretório /u01/flash/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux /]$ &lt;span style="font-weight: bold;"&gt;cd /u01/flash/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@linux flash]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-x--- 4 oracle dba      4096 Out 6 08:37 &lt;span style="color: rgb(51, 51, 255);"&gt;BD01&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle oinstall 1043 Out 6 08:38 &lt;span style="color: rgb(51, 51, 255);"&gt;initBD01.ora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Por fim, é altamente recomendável copiar os arquivos de backup para um local seguro, logo assim que o procedimento de backup for finalizado.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-4543312627515867610?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/4543312627515867610/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=4543312627515867610' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4543312627515867610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4543312627515867610'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/10/gerando-backups-fisicos-de-banco-de.html' title='Gerando backups físicos de banco de dados com o RMAN através de um shell script no Linux ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0YJ39t-zN8U/SstQxqc06yI/AAAAAAAAAgQ/XxVuCiaTTEU/s72-c/hard-disk.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-3848369655796976960</id><published>2009-09-15T13:05:00.002-03:00</published><updated>2009-10-02T13:07:10.123-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expdp'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 8i'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 9i'/><category scheme='http://www.blogger.com/atom/ns#' term='exp'/><category scheme='http://www.blogger.com/atom/ns#' term='rman'/><category scheme='http://www.blogger.com/atom/ns#' term='backup lógico'/><category scheme='http://www.blogger.com/atom/ns#' term='exp_full_database'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='datapump'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 10g'/><title type='text'>Gerando backups lógicos de banco de dados no Linux através de um script Perl ...</title><content type='html'>&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Antes de mostrar o script em "&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;perl&lt;/span&gt;" para geração de backups lógicos do Oracle no Linux, através dos utilitários de exportação fornecidos junto com o banco de dados Oracle, irei repetir o que já foi comentado nos artigos de &lt;a href="http://eduardolegatti.blogspot.com/2008/10/por-que-aps-ter-realizado-uma-importao.html"&gt;Outubro/2008&lt;/a&gt; e &lt;a href="http://eduardolegatti.blogspot.com/2008/12/salvo-pelo-allowresetlogscorruption.html"&gt;Dezembro/2008&lt;/a&gt;: O desenvolvimento de um plano de backup e recuperação é extremamente importante para um servidor de banco de dados. É lógico que, dependendo do caso, um plano adequado de backup e recuperação não tem que ser necessariamente o mais elaborado e complexo ... na verdade, &lt;span style="font-weight: bold;"&gt;ele precisa ser aquele que irá servir melhor às necessidades de cada negócio&lt;/span&gt;. Em geral os tipos de backups dos bancos de dados Oracle se classificam em três categorias simples:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;* Backup do sistem operacional (OS)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;* Backups gerenciados pelo RMAN (Recovery Manager)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;* Backups lógicos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Em resumo, cada tipo de método de backup tem suas próprias vantagens e desvantagens. O processo de criação de uma boa estratégia de backup e recuperação envolve a avaliação dos méritos e problemas desses diferentes tipos de backups, e sua combinação conforme a necessidade para criar um nível aceitável de proteção efetivo.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0YJ39t-zN8U/Sq-5QGodJBI/AAAAAAAAAgI/8zfME-ng0Vw/s1600-h/backup-cd.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 255px; height: 192px;" src="http://3.bp.blogspot.com/_0YJ39t-zN8U/Sq-5QGodJBI/AAAAAAAAAgI/8zfME-ng0Vw/s400/backup-cd.jpg" alt="" id="BLOGGER_PHOTO_ID_5381723766040372242" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;Vale a pena salientar que o utilitário de exportação &lt;span style="font-weight: bold;"&gt;não pode ser considerado como uma ferramenta para criação de um método efetivo de backup&lt;/span&gt;. Eu diria que ele possibilita um &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;backup lógico&lt;/span&gt;, pelo fato de que não é possível aplicar um histórico de redo log nos objetos importados provenientes de um arquivo de exportação. Um backup lógico de um banco de dados envolve a leitura de um conjunto de registros do banco de dados e a gravação destes em um arquivo. Esses registros são lidos independentes das suas localizações físicas. &lt;span style="font-weight: bold;"&gt;Acredito que uma estratégia robusta de backup possa incluir tanto backups físicos como lógicos&lt;/span&gt;. Em geral, bancos de dados de produção contam com backups físicos como seu principal método de backup e &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;backups lógicos servem como um método secundário&lt;/span&gt;. Por outro lado, para bancos de dados de desenvolvimento e para pequenos processamentos de movimentação de dados, os backups &lt;/span&gt;&lt;span style="font-size:85%;"&gt;lógicos podem ser uma solução aceitável e viável.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a style="font-family: courier new;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0YJ39t-zN8U/Sq-5QGodJBI/AAAAAAAAAgI/8zfME-ng0Vw/s1600-h/backup-cd.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div  style="text-align: justify; font-family: courier new;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Portanto, os arquivos dumps gerados pelo utilitário de exportação podem ser &lt;/span&gt;&lt;span style="font-size:85%;"&gt;utilizados &lt;span style="font-weight: bold;"&gt;como um recurso complementar ao backup físico de banco de dados para &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;proteção contra erros de usuário&lt;/span&gt;. Por exemplo, um backup lógico pode ser útil quando um usuário elimina ou trunca uma tabela acidentalmente ou quando o DBA precisa restaurar uma tabela que apresente erros lógicos, ou uma operação qualquer que tenha afetado somente um subconjunto do banco de dados. Neste caso, um dump de exportação atualizado seria uma alternativa mais rápida e menos traumática do que realizar uma recuperação incompleta de banco de dados, seja ela gerenciada pelo usuário ou através do recovery manager (&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;RMAN&lt;/span&gt;). Em todo caso, e dependendo do cenário, isso dependerá muito da versão Oracle utilizada pelo fato de a partir do Oracle 10g, nós já termos a proteção da &lt;a href="http://eduardolegatti.blogspot.com/2007/06/trabalhando-com-flashback-drop-no.html"&gt;lixeira&lt;/a&gt; (recyclebin) para segmentos que foram dropados e inclusive recursos da tecnologia flashback.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div face="courier new" style="text-align: justify; font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;No mais, abaixo existem dois scripts escritos em "&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;perl&lt;/span&gt;" que realizam o backup lógico (&lt;span style="font-weight: bold;"&gt;FULL export&lt;/span&gt;) do banco de dados. Eu digo dois porque, o primeiro, faz uso do utilitário de exportação tradicional (exp) para uso no caso de versões Oracle anteriores ao Oracle 10g e, o segundo, faz uso do utilitário Export Data Pump (expdp) para uso nas versões à partir do Oracle 10g.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: courier new;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-family: courier new;"&gt;&lt;span style="font-size:85%;"&gt;Em resumo, o script &lt;span style="color: rgb(51, 51, 255);"&gt;irá gerar o arquivo dump de exportação, compactá-lo através de um utilitário fornecido pelo sistema operacional, renomeá-lo com informações de data, hora e minuto de criação e, por fim, realizar a exclusão de arquivos dump de exportação (compactados) antigos&lt;/span&gt;, ou seja, &lt;span style="font-weight: bold;"&gt;somente os 20 últimos arquivos gerados serão mantidos&lt;/span&gt;. Utilizarei o "&lt;span style="color: rgb(255, 0, 0);"&gt;cron&lt;/span&gt;" do linux para agendar a execução diária do script, como demonstrarei mais abaixo:&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando se o pacote perl está instalado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# &lt;span style="font-weight: bold;"&gt;rpm -q perl&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;perl-5.8.8-10.el5_0.2&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Afim de não expor a senha do usuário DBA de banco de dados &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;SYSTEM&lt;/span&gt; no script, irei criar como demonstrado abaixo, um usuário de banco de dados com os privilégios necessários para a realização da exportação FULL.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create user &lt;span style="font-weight: bold;"&gt;adm&lt;/span&gt; identified by &lt;span style="font-weight: bold;"&gt;adm&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  default tablespace users&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  quota unlimited on users;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; grant create session,create table,exp_full_database to adm;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Concessão bem-sucedida.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Vale a pena salientar que o privilégio de sistema "&lt;span style="color: rgb(51, 51, 255);"&gt;create table&lt;/span&gt;" concedido ao usuário &lt;span style="font-weight: bold;"&gt;ADM&lt;/span&gt; se faz necessário para uso do utilitário Export Data Pump. A única configuração necessária para se realizar no script será o de informar, através da variável &lt;span style="color: rgb(255, 0, 0);"&gt;$destinoBackup&lt;/span&gt;, o local onde deverão ser gerados os backups lógicos do banco de dados. Para quem for utilizar o Export Data Pump (&lt;span style="font-weight: bold;"&gt;expdp&lt;/span&gt;), esta variável deverá ter o mesmo caminho que foi definido no objeto "&lt;span style="font-style: italic;"&gt;directory&lt;/span&gt;".&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Script para uso do utilitário exp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$destinoBackup = '/backup/oracle/exp';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;opendir($destinoBackup,'.') || die "O diretorio de backup($destinoBackup) não existe";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "Iniciando backup lógico...\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("su - oracle -c \"exp adm/adm file=$destinoBackup/bkpfull.dmp full=y\"");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "Compactando backup...\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("gzip $destinoBackup/bkpfull.dmp");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;@time = localtime(time);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$dataHora = (1900+$time[5])."\-".($time[4]+1)."\-$time[3]_$time[2]-$time[1]h";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("mv $destinoBackup/bkpfull.dmp.gz $destinoBackup/bkpfull_$dataHora.dmp.gz");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("find $destinoBackup -mtime +20 -name \"*.dmp.gz\" -exec rm {} ".'\;');&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para uso do Export Data Pump, irei criar o objeto "&lt;span style="color: rgb(51, 51, 255);"&gt;directory&lt;/span&gt;" como demonstrado abaixo:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create directory exp_dir as '/backup/oracle/expdp';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Diretório criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; grant read,write on directory exp_dir to adm;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Concessão bem-sucedida.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Script para uso do utilitário expdp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$destinoBackup = '/backup/oracle/expdp';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;opendir($destinoBackup,'.') || die "O diretorio de backup($destinoBackup) não existe";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "Iniciando backup lógico...\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("su - oracle -c \"expdp adm/adm directory=exp_dir dumpfile=bkpfull.dmp full=y\"");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;print "Compactando backup...\n";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("gzip $destinoBackup/bkpfull.dmp");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;@time = localtime(time);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$dataHora = (1900+$time[5])."\-".($time[4]+1)."\-$time[3]_$time[2]-$time[1]h";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("mv $destinoBackup/bkpfull.dmp.gz $destinoBackup/bkpfull_$dataHora.dmp.gz");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;system("find $destinoBackup -mtime +20 -name \"*.dmp.gz\" -exec rm {} ".'\;');&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Independente do utilitário de exportação escolhido, irei mover o script de backup para o diretório &lt;span style="color: rgb(51, 51, 255);"&gt;/usr/bin&lt;/span&gt; e criar uma entrada no "&lt;span style="color: rgb(0, 153, 0);"&gt;crontab&lt;/span&gt;" de forma a agendar a execução do mesmo como, por exemplo, &lt;span style="font-weight: bold;"&gt;todos os dias às 22:00&lt;/span&gt;. Se porventura ocorrer de algum usuário vir a utilizar o banco de dados durante o horário de realização do backup, então seria prudente adicionar a cláusula &lt;span style="color: rgb(255, 0, 0);"&gt;CONSISTENT=Y&lt;/span&gt; ao comando do utilitário de exportação tradicional (exp).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# cd /usr/bin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# ls -l bkpora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rwxr-xr-x 1 oracle dba 651 Set 15 08:20 &lt;span style="color: rgb(255, 0, 0);"&gt;bkpora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# &lt;span style="font-weight: bold;"&gt;crontab -l&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;00 22 * * * bkpora&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Abaixo está um exemplo de execução do script na qual utilizei o Export Data Pump como utilitário de exportação:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# &lt;span style="font-weight: bold;"&gt;./bkpora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;Iniciando backup lógico...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Export: Release 10.2.0.1.0 - Production on Terça-Feira, 15 Setembro, 2009 08:25:57&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2005, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando "ADM"."SYS_EXPORT_FULL_01":  adm/******** directory=exp_dir&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dumpfile=bkpfull.dmp full=y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimativa em andamento com o método BLOCKS...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimativa total usando o método de BLOCKS: 29.93 MB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto DATABASE_EXPORT/TABLESPACE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto DATABASE_EXPORT/SYS_USER/USER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto DATABASE_EXPORT/SCHEMA/USER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto DATABASE_EXPORT/ROLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conjunto de arquivos de dump para ADM.SYS_EXPORT_FULL_01 é:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  /backup/oracle/expdp/bkpfull.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;O job "ADM"."SYS_EXPORT_FULL_01" foi concluído com sucesso em 08:28:16&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;Compactando backup...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;prod-web:~ # &lt;span style="font-weight: bold;"&gt;cd /backup/oracle/expdp&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;prod-web:/backup/oracle/expdp # &lt;span style="font-weight: bold;"&gt;ls -lh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 13M&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-xr-x  2 oracle oinstall 4,0K 2009-09-15 08:10 .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-xr-x  9 oracle oinstall 4,0K 2009-09-15 08:09 ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r-----  1 oracle dba       13M 2009-09-15 08:28 &lt;span style="color: rgb(255, 0, 0);"&gt;bkpfull_2009-9-15_08-28h.dmp.gz&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r--  1 oracle dba       23K 2009-08-26 08:28 &lt;span style="color: rgb(255, 0, 0);"&gt;export.log&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;No mais, ao longo dos dias, será possível visualizar os arquivos gerados como demonstrado no exemplo abaixo, mas, sempre que for possível eu recomendaria &lt;span style="font-weight: bold;"&gt;movê-los para um local seguro&lt;/span&gt;.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;[root@linux ~]# &lt;span style="font-weight: bold;"&gt;ls -lhatr&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;total 3,8G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;drwxr-xr-x 4 root   root 4,0K Mai 27 22:05 ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Jul 31 22:05 bkpfull_2009-7-31_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  1 22:05 bkpfull_2009-8-1_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  2 22:05 bkpfull_2009-8-2_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  3 22:04 bkpfull_2009-8-3_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  4 22:05 bkpfull_2009-8-4_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  5 22:05 bkpfull_2009-8-5_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  6 22:04 bkpfull_2009-8-6_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  7 22:05 bkpfull_2009-8-7_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  8 22:05 bkpfull_2009-8-8_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago  9 22:05 bkpfull_2009-8-9_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  183M Ago 10 22:05 bkpfull_2009-8-10_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  183M Ago 11 22:05 bkpfull_2009-8-11_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 12 22:05 bkpfull_2009-8-12_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 13 22:05 bkpfull_2009-8-13_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 14 22:05 bkpfull_2009-8-14_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 15 22:05 bkpfull_2009-8-15_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 16 22:05 bkpfull_2009-8-16_22-7h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 17 22:05 bkpfull_2009-8-17_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 18 22:05 bkpfull_2009-8-18_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  182M Ago 19 22:05 bkpfull_2009-8-19_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle dba  183M Ago 20 22:05 bkpfull_2009-8-20_22-6h.dmp.gz&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-3848369655796976960?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/3848369655796976960/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=3848369655796976960' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/3848369655796976960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/3848369655796976960'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/09/gerando-backups-logicos-de-banco-de.html' title='Gerando backups lógicos de banco de dados no Linux através de um script Perl ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0YJ39t-zN8U/Sq-5QGodJBI/AAAAAAAAAgI/8zfME-ng0Vw/s72-c/backup-cd.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-2151159905723252518</id><published>2009-09-01T13:27:00.007-03:00</published><updated>2009-09-23T21:33:37.170-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prometric'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='pearson vue'/><category scheme='http://www.blogger.com/atom/ns#' term='exame'/><category scheme='http://www.blogger.com/atom/ns#' term='certificação'/><title type='text'>Seja bem-vindo Pearson VUE .... Adeus Prometric ....</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0YJ39t-zN8U/Sp1LwYelVSI/AAAAAAAAAgA/l4_dQQP0WaQ/s1600-h/pvue.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 98px; height: 60px;" src="http://2.bp.blogspot.com/_0YJ39t-zN8U/Sp1LwYelVSI/AAAAAAAAAgA/l4_dQQP0WaQ/s400/pvue.gif" alt="" id="BLOGGER_PHOTO_ID_5376536824726770978" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;De acordo com a nota de &lt;a href="http://blogs.oracle.com/certification/2009/08/0134.html"&gt;Paul Sorensen&lt;/a&gt;, à partir de 25 de setembro de 2009, os exames para certificação não serão mais oferecidos pela &lt;a href="http://www.2test.com/"&gt;Prometric&lt;/a&gt;. A Oracle e a equipe do programa de certificação está em discussão com um novo parceiro que substituirá a atual provedora dos exames da Oracle, a Prometric. Segundo outras fontes, esta empresa seria a &lt;a href="http://www.pearsonvue.com/"&gt;Pearson VUE&lt;/a&gt;. No mais, os candidatos serão capazes de se registrarem na Prometric até o dia 13 de setembro de 2009, embora os exames ainda possam ser realizados até o dia 25&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Os candidatos poderão ser registrar através do site da Pearson VUE à partir de do dia 14. Assim que for disponibilizado, convém acessar o link &lt;a href="http://www.pearsonvue.com/oracle"&gt;www.pearsonvue.com/oracle&lt;/a&gt; e, quanto a questões e dúvidas em geral, recomendo acessar a &lt;a href="http://blogs.oracle.com/certification/2009/08/0134.html"&gt;nota do blog do Programa de certificação da Oracle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Em meio a este anúncio e, aproveitando este post, foi disponibilizado para download no site da Oracle, o tão aguardado &lt;a href="http://www.oracle.com/technology/software/products/database/index.html"&gt;Oracle Database 11g Release 2&lt;/a&gt; para as plataformas Linux x86/Linux x86-64.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-2151159905723252518?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/2151159905723252518/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=2151159905723252518' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/2151159905723252518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/2151159905723252518'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/09/seja-bem-vindo-pearson-vue-adeus.html' title='Seja bem-vindo Pearson VUE .... Adeus Prometric ....'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0YJ39t-zN8U/Sp1LwYelVSI/AAAAAAAAAgA/l4_dQQP0WaQ/s72-c/pvue.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-8105350919251873599</id><published>2009-08-25T09:13:00.010-03:00</published><updated>2009-08-25T22:12:24.346-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1z0-035'/><category scheme='http://www.blogger.com/atom/ns#' term='1z0-010'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 8i'/><category scheme='http://www.blogger.com/atom/ns#' term='1z0-020'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 9i'/><category scheme='http://www.blogger.com/atom/ns#' term='exame'/><category scheme='http://www.blogger.com/atom/ns#' term='certificação'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><title type='text'>Anunciado a aposentadoria dos exames de certificação OCP Oracle 8 e 8i</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Olá,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/SpPTscJx5XI/AAAAAAAAAfc/N4xYlHoXjVw/s1600-h/8iretirement.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 250px; height: 166px;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SpPTscJx5XI/AAAAAAAAAfc/N4xYlHoXjVw/s400/8iretirement.gif" alt="" id="BLOGGER_PHOTO_ID_5373871540808050034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Estava lendo o &lt;a href="http://blogs.oracle.com/certification/2009/08/0121.html"&gt;Oracle Certification blog&lt;/a&gt; de Paul Sorensen, e resolvi compartilhar a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;informação aqui. Segundo o post, &lt;span style="color: rgb(51, 51, 255);"&gt;à partir de 25 setembro de 2009&lt;/span&gt;, os exames &lt;a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;amp;p_org_id=1080544&amp;amp;lang=US&amp;amp;p_exam_id=1Z0_010"&gt;(1Z0-010) Oracle8: New Features for Administrators&lt;/a&gt; e &lt;a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;amp;p_org_id=1080544&amp;amp;lang=US&amp;amp;p_exam_id=1Z0_020"&gt;(1Z0-020) Oracle8i: New Features for Administrators&lt;/a&gt; serão descontinuados (aposentados), ou seja, não estarão mais disponíveis como opções de exames para a obtenção de certificação OCP.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;O exame &lt;span style="color: rgb(51, 51, 255);"&gt;1Z0-010&lt;/span&gt; foi criado para aquele profissional que é OCP Oracle 7.3 e que deseja atualizar sua certificação para a versão do Oracle 8. Já o exame &lt;span style="color: rgb(51, 51, 255);"&gt;1Z0-020&lt;/span&gt;, foi criado aquele profissional que é OCP Oracle 8 e que deseja fazer a atualização da sua certificação para a versão Oracle 8i. Portanto, para quem ainda tem interesse em realizar esses dois exames, os mesmos &lt;span style="font-weight: bold;"&gt;ainda poderão ser realizados  até o dia 25 de setembro de 2009&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;No mais, para os profissionais que detém a certificação OCP Oracle 7.3 e/ou OCP Oracle 8, os mesmos ainda terão a opção de atualização de suas certificações para a versão OCP Oracle 9i através do exame &lt;a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&amp;amp;p_org_id=1080544&amp;amp;lang=US&amp;amp;p_exam_id=1Z0_035"&gt;1Z0-035 DBA Oracle 9i New Features for Oracle7.3 e OCPs Oracle8&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-8105350919251873599?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/8105350919251873599/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=8105350919251873599' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/8105350919251873599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/8105350919251873599'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/08/anunciado-aposentadoria-dos-exames-de.html' title='Anunciado a aposentadoria dos exames de certificação OCP Oracle 8 e 8i'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0YJ39t-zN8U/SpPTscJx5XI/AAAAAAAAAfc/N4xYlHoXjVw/s72-c/8iretirement.gif' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-3084011876052116978</id><published>2009-08-17T09:36:00.008-03:00</published><updated>2009-08-20T16:59:50.642-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='sysdate'/><category scheme='http://www.blogger.com/atom/ns#' term='systimestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='dbtimezone'/><category scheme='http://www.blogger.com/atom/ns#' term='sessiontimezone'/><category scheme='http://www.blogger.com/atom/ns#' term='desenvolvedor'/><category scheme='http://www.blogger.com/atom/ns#' term='localtimestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='timestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='timestamp with time zone'/><category scheme='http://www.blogger.com/atom/ns#' term='current_timestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='timestamp with local time zone'/><category scheme='http://www.blogger.com/atom/ns#' term='current_date'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><title type='text'>Introdução ao tipo de dado TIMESTAMP e suas variações ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0YJ39t-zN8U/SolOCL-BbpI/AAAAAAAAAec/43pJntusry0/s1600-h/clock.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 96px; height: 99px;" src="http://1.bp.blogspot.com/_0YJ39t-zN8U/SolOCL-BbpI/AAAAAAAAAec/43pJntusry0/s400/clock.png" alt="" id="BLOGGER_PHOTO_ID_5370909830095662738" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Sabemos que o tipo de dado DATE do Oracle é um tipo especial capaz de armazenar datas &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;que vão de 4712 a.C. a 9999 d.C, mas além de armazenar informações de século, ano, mês e dia, o mesmo também é capaz de armazenar informações de hora, minuto e segundo. Mas aí você poderia perguntar: Se o tipo de dado DATE é capaz de manter essas informações temporais, isso não poderia ser considerado um TIMESTAMP? &lt;span style="font-weight: bold;"&gt;Não necessariamente&lt;/span&gt;. O tipo de dados &lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements001.htm#SQLRF00203"&gt;TIMESTAMP&lt;/a&gt; introduzido à partir do Oracle 9i, &lt;span style="color: rgb(255, 0, 0);"&gt;vai muito mais além do que simplesmente armazenar de forma "&lt;span style="font-style: italic;"&gt;crua&lt;/span&gt;" informações de data e horários&lt;/span&gt;. Podemos dizer que o tipo de dado TIMESTAMP é uma extensão do tipo de dados DATE, &lt;span style="font-weight: bold;"&gt;capaz de manter informações de tempo com maior precisão&lt;/span&gt;. No mais, neste artigo farei uma breve introdução a este tipo de dado e suas variações (&lt;span style="color: rgb(51, 51, 255);"&gt;WITH TIME ZONE&lt;/span&gt; e &lt;span style="color: rgb(255, 0, 0);"&gt;WITH LOCAL TIME ZONE&lt;/span&gt;) que, muitas vezes, é fonte de dúvida entre desenvolvedores e administradores de banco de dados quanto à sua aplicação e uso. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Antes de começar a descrever sobre o tipo de dados &lt;span style="color: rgb(0, 153, 0);"&gt;TIMESTAMP&lt;/span&gt;, irei iniciar através do exemplo abaixo, como poderíamos verificar informações de século, data e horários atuais, selecionando-as direto do banco de dados através do uso da função &lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions172.htm#SQLRF06124"&gt;SYSDATE&lt;/a&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select to_char(to_date(0,'J'), 'dd/mm/yyyy ad') from dual;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;select to_char(to_date(0,'J'), 'dd/mm/yyyy ad') from dual&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;                       *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERRO na linha 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-01854: data juliana deve estar entre 1 e 5373484&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  to_char(to_date(&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;,'J'), 'dd/mm/yyyy ad') de,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  to_char(to_date(&lt;span style="color: rgb(51, 51, 255);"&gt;5373484&lt;/span&gt;,'J'), 'dd/mm/yyyy ad') ate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DE              ATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------- ---------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;01/01/4712 a.C.&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;31/12/9999 d.C.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select to_char(sysdate,'&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;cc&lt;/span&gt; dd/mm/yyyy hh24:mi:ss') data from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DATA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;21&lt;/span&gt; 17/08/2009 08:10:25&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Talvez você também já tenha ouvido falar da função &lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions036.htm#SQLRF00628"&gt;CURRENT_DATE&lt;/a&gt;. A diferença entre ela e o SYSDATE é que &lt;span style="font-weight: bold;"&gt;a função SYSDATE retorna a data e horário do servidor&lt;/span&gt;, enquanto que &lt;span style="font-weight: bold;"&gt;a função CURRENT_DATE retorna a data e horário de acordo com o &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://pt.wikipedia.org/wiki/Fuso_hor%C3%A1rio"&gt;fuso horário&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; da sessão do usuário&lt;/span&gt;. Para comprovar tal explicação, no exemplo abaixo irei alterar o fuso horário da minha sessão para o fuso horário de Nova York nos EUA que é &lt;span style="color: rgb(255, 0, 0);"&gt;'-5:00'&lt;/span&gt;. No servidor Oracle, o fuso horário está definido em &lt;span style="color: rgb(51, 51, 255);"&gt;'-3:00'&lt;/span&gt;, ou seja, três horas de atraso em relação à hora de &lt;a href="http://pt.wikipedia.org/wiki/Meridiano_de_Greenwich"&gt;Greenwich&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter session set nls_date_format='dd/mm/yyyy hh24:mi:ss';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sessão alterada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select sessiontimezone from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SESSIONTIMEZONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;-03:00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter session set time_zone='-5:00';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sessão alterada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select sessiontimezone from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SESSIONTIMEZONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;-05:00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select sysdate,current_date from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYSDATE             CURRENT_DATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------- -------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;17/08/2009 &lt;span style="color: rgb(51, 51, 255);"&gt;08:15:45&lt;/span&gt; 17/08/2009 &lt;span style="color: rgb(255, 0, 0);"&gt;06:15:45&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Podemos perceber acima que SYSDATE retornou o horário do servidor, e CURRENT_DATE o horário de acordo com o fuso horário definido na minha sessão.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Bom, voltando ao assunto que originou este artigo e, como já dito anteriormente, o tipo de dados TIMESTAMP introduzido à partir do Oracle 9i é uma extensão do tipo de dados DATE. Além de armazenar o ano, mês, dia, horas, minutos e segundos do tipo de dados DATE, &lt;span style="font-weight: bold;"&gt;o mesmo é capaz também de armazenar o valor das frações de segundo&lt;/span&gt;. A precisão dessas frações, como o próprio nome já diz, nada mais é do que o número de dígitos da parte fracionária dos "segundos". Esta precisão pode ser um número de 0 a 9, mas quando não especificado, o seu valor padrão é 6.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t1 (ts_data timestamp);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Tabela criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; desc t1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome                         Nulo?    Tipo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ---------------------------- -------- ------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; TS_DATA                               &lt;span style="color: rgb(0, 153, 0);"&gt;TIMESTAMP(6)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; insert into t1 values (localtimestamp);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 linha criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter session set nls_timestamp_format = 'dd/mm/yyyy hh24:mi:ss&lt;span style="color: rgb(0, 153, 0);"&gt;.ff&lt;/span&gt;';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sessão alterada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from t1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TS_DATA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;05/08/2009 08:20:32&lt;span style="color: rgb(0, 153, 0);"&gt;.627869&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Além do exemplo demonstrado acima, existem ainda duas variações do tipo de dados TIMESTAMP:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/SolOK0VlzNI/AAAAAAAAAek/nZf-tncgPkM/s1600-h/world.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 53px;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SolOK0VlzNI/AAAAAAAAAek/nZf-tncgPkM/s400/world.jpg" alt="" id="BLOGGER_PHOTO_ID_5370909978370886866" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;O tipo &lt;span style="font-weight: bold;"&gt;TIMESTAMP WITH TIME ZONE&lt;/span&gt; é uma variante de TIMESTAMP que inclui um deslocamento de fuso horário (TIME ZONE) em seu valor. Podemos dizer que o deslocamento de fuso horário em questão é a diferença em horas e minutos entre o horário local e o UTC. UTC é um acrônimo do Inglês para "&lt;span style="font-style: italic;"&gt;Coordinated Universal Time&lt;/span&gt;" ou "&lt;span style="font-style: italic;"&gt;Tempo Universal Coordenado&lt;/span&gt;" que corresponde ao fuso horário de referência a partir do qual se calculam todas as outras zonas horárias do mundo. Segundo algumas bibliografias, o UTC é o sucessor do Tempo Médio de Greenwich (Greenwich Mean Time), abreviadamente mais conhecido como GMT. Esta nova denominação foi cunhada para basear a medida do tempo nos padrões atômicos, mais do que nos celestes. Em resumo, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;dois valores TIMESTAMP WITH TIME ZONE serão considerados idênticos se representarem o mesmo instante em UTC, independente dos deslocamentos de fusos horários (TIME ZONE) armazenados nos dados&lt;/span&gt;. Confuso? Bom, para que não haja dúvidas, poderemos ver abaixo um exemplo que demonstra uma informação de data e horário que deverá ser reunida ou coordenada entre diferentes regiões geográficas com fusos horários distintos:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Por exemplo:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; TIMESTAMP '17/08/2009 &lt;span style="color: rgb(51, 51, 255);"&gt;08:00:00&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;-3:00&lt;/span&gt;'&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;é o mesmo que &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; TIMESTAMP '17/08/2009 &lt;span style="color: rgb(255, 0, 0);"&gt;06:00:00&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;-5:00&lt;/span&gt;'&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Isto é, &lt;span style="color: rgb(51, 51, 255);"&gt;08:00&lt;/span&gt; horas da manhã no horário de Brasília é o mesmo que &lt;span style="color: rgb(255, 0, 0);"&gt;06:00&lt;/span&gt; horas da manhã no horário de Nova York nos EUA.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0YJ39t-zN8U/SolOTTcBIjI/AAAAAAAAAes/zuXOTedXgE4/s1600-h/timeclock.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 53px;" src="http://2.bp.blogspot.com/_0YJ39t-zN8U/SolOTTcBIjI/AAAAAAAAAes/zuXOTedXgE4/s400/timeclock.jpg" alt="" id="BLOGGER_PHOTO_ID_5370910124158296626" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O outro tipo, &lt;span style="font-weight: bold;"&gt;TIMESTAMP WITH LOCAL TIME ZONE&lt;/span&gt; é outra variante de TIMESTAMP que inclui um deslocamento de fuso horário em seu valor. A diferença é que este deslocamento &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;não é armazenado como parte dos dados da coluna&lt;/span&gt;, mas sim, normalizado para o fuso horário do banco de dados (&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions039.htm#SQLRF00630"&gt;DBTIMEZONE&lt;/a&gt;). O verbo "&lt;span style="font-style: italic;"&gt;normalizar&lt;/span&gt;", neste caso, eu entendo como &lt;span style="font-weight: bold;"&gt;um cálculo que é realizado tendo como base o fuso horário definido no banco de dados afim de se mostrar o horário local do usuário&lt;/span&gt;. Portanto, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;o Oracle retornará a informação de data, hora, minuto e segundo no fuso horário local da sessão que está acessando o dado&lt;/span&gt;. Vale a pena salientar que o uso desta variante é apropriado para aplicações onde se deseja exibir as datas e os horários usando o fuso horário do sistema cliente. Para quem já acessou algum tipo fórum ou lista de discussão de nível global, notará que ao postar algum tópico no fórum, a data e horário mostrada será convertida para o fuso horário local. Caso um leitor que esteja no Japão acessar o tópico, verá a data e horário de acordo com o fuso horário do Japão. Então, utilizando como base o exemplo anterior:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Supondo que eu esteja no Brasil (fuso horário &lt;span style="color: rgb(51, 51, 255);"&gt;-3:00&lt;/span&gt;) e insira a data e horário abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; TIMESTAMP '17/08/2009 &lt;span style="color: rgb(51, 51, 255);"&gt;08:00:00&lt;/span&gt;'&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;e um usuário que esteja em Nova York (fuso horário &lt;span style="color: rgb(255, 0, 0);"&gt;-5:00&lt;/span&gt;) acessar o mesmo dado, a data apresentada para este usuário será&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; TIMESTAMP '17/08/2009 &lt;span style="color: rgb(255, 0, 0);"&gt;06:00:00&lt;/span&gt;'&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No mais, para demonstrar o uso do tipo TIMESTAMP e suas duas variações, irei realizar algumas operações abaixo. Vale a pena salientar que o Oracle possui além das funções SYSDATE e CURENT_DATE, outras funções embutidas para capturar informações de data e horários atuais como, LOCALTIMESTAMP, CURRENT_TIMESTAMP e SYSTIMESTAMP onde:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions079.htm#SQLRF00660"&gt;LOCALTIMESTAMP&lt;/a&gt;: retorna um valor do tipo TIMESTAMP como data e horário corrente (incluindo frações de segundos), de acordo com o fuso horário definido na sessão do usuário.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions037.htm#SQLRF00629"&gt;CURRENT_TIMESTAMP&lt;/a&gt;: retorna um valor do tipo TIMESTAMP WITH TIME ZONE como data e horário corrente (incluindo frações de segundos), de acordo com o fuso horário definido na sessão do usuário.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions173.htm#SQLRF06125"&gt;SYSTIMESTAMP&lt;/a&gt;: retorna um valor do tipo TIMESTAMP WITH TIME ZONE como data e horário corrente (incluindo frações de segundos), de acordo com o fuso horário definido no sistema onde o servidor de banco de dados reside.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para demonstrar o resultado das funções acima, executarei os comandos SQL abaixo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter session set time_zone=&lt;span style="color: rgb(255, 0, 0);"&gt;'-5:00'&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sessão alterada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select localtimestamp,current_timestamp,systimestamp from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LOCALTIMESTAMP           CURRENT_TIMESTAMP               SYSTIMESTAMP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------ ------------------------------- -------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;17/08/09 &lt;span style="color: rgb(255, 0, 0);"&gt;06:20:54&lt;/span&gt;,656000 17/08/09 &lt;span style="color: rgb(255, 0, 0);"&gt;06:20:54&lt;/span&gt;,656000 &lt;span style="color: rgb(255, 0, 0);"&gt;-05:00&lt;/span&gt; 17/08/09 &lt;span style="color: rgb(51, 51, 255);"&gt;08:20:54&lt;/span&gt;,656000 &lt;span style="color: rgb(51, 51, 255);"&gt;-03:00&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Podemos perceber pelo resultado acima que LOCALTIMESTAMP e CURRENT_TIMESTAMP apresentaram o mesmo horário, a diferença é que CURRENT_TIMESTAMP trouxe a informação do fuso horário (&lt;span style="color: rgb(255, 0, 0);"&gt;-5:00&lt;/span&gt;). Já a função SYSTIMESTAMP, diferente de CURRENT_TIMESTAMP, trouxe o horário de acordo com o fuso horário definido no sistema do servidor de banco de dados.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei agora criar uma tabela de teste conforme abaixo:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t2 (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2   &lt;span style="color: rgb(0, 153, 0);"&gt;a timestamp&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3   &lt;span style="color: rgb(51, 51, 255);"&gt;b timestamp with time zone&lt;/span&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4   &lt;span style="color: rgb(255, 0, 0);"&gt;c timestamp with local time zone&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5  );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Tabela criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; desc t2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome                      Nulo?    Tipo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------- -------- ---------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;A&lt;/span&gt;                                  &lt;span style="color: rgb(0, 153, 0);"&gt;TIMESTAMP(6)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;B&lt;/span&gt;                                  &lt;span style="color: rgb(51, 51, 255);"&gt;TIMESTAMP(6) WITH TIME ZONE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;C&lt;/span&gt;                                  &lt;span style="color: rgb(255, 0, 0);"&gt;TIMESTAMP(6) WITH LOCAL TIME ZONE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; insert into t2 values (localtimestamp,localtimestamp,localtimestamp);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 linha criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from t2;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;A                        B                               C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------ ------------------------------- ------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;17/08/09 &lt;span style="font-weight: bold;"&gt;08:30:10&lt;/span&gt;,250000&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;17/08/09 &lt;span style="font-weight: bold;"&gt;08:30:10&lt;/span&gt;,250000 -03:00&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;17/08/09 &lt;span style="font-weight: bold;"&gt;08:30:10&lt;/span&gt;,250000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Independente da função utilizada, as informações de data e horários foram inseridas nas devidas colunas e mostram o mesmo horário. Agora irei realizar através de uma aplicação (no meu caso o SQL*Plus), a simulação do acesso remoto ao banco de dados na qual o usuário está localizado em uma região geográfica &lt;span style="font-weight: bold;"&gt;onde fuso horário desta região seja diferente&lt;/span&gt; como, por exemplo, Nova York nos EUA:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter session set time_zone=&lt;span style="color: rgb(255, 0, 0);"&gt;'-5:00'&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sessão alterada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select dbtimezone,sessiontimezone from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DBTIMEZONE SESSIONTIMEZONE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;-03:00&lt;/span&gt;     &lt;span style="color: rgb(255, 0, 0);"&gt;-05:00&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from t2;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;A                         B                              C&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------ ------------------------------- ------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;17/08/09 08:30:10,250000&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;17/08/09 &lt;span style="font-weight: bold;"&gt;08:30:10&lt;/span&gt;,250000 -03:00&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;17/08/09 &lt;span style="font-weight: bold;"&gt;06:30:10&lt;/span&gt;,250000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;De acordo com o resultado acima, podemos notar que os resultados das colunas &lt;span style="color: rgb(0, 153, 0);"&gt;A&lt;/span&gt; e &lt;span style="color: rgb(51, 51, 255);"&gt;B&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;não se alteraram&lt;/span&gt;, ou seja, como o usuário Nova Yorkino não tem conhecimento do fuso horário da região de onde está localizado o banco de dados, &lt;span style="font-weight: bold;"&gt;o valor da coluna &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;A&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; seria um tanto impreciso&lt;/span&gt;. Já o valor da coluna &lt;span style="color: rgb(51, 51, 255);"&gt;B&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;faria mais sentido pelo fato de apresentar a informação do fuso horário&lt;/span&gt;, ou seja, o usuário saberia de forma precisa, o horário em que o dado foi gravado. Por último, podemos perceber que &lt;span style="font-weight: bold;"&gt;o valor da coluna &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;C&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; foi automaticamente "&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;convertido&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;" para o fuso horário da sessão do usuário&lt;/span&gt; que, neste caso é &lt;span style="color: rgb(255, 0, 0);"&gt;'-5:00'&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Concluindo, o tipo de dado TIMESTAMP WITH LOCAL TIME ZONE é ideal e apropriado para aplicações onde se deseja exibir informações de data e horários usando o fuso horário do sistema cliente.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-3084011876052116978?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/3084011876052116978/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=3084011876052116978' title='16 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/3084011876052116978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/3084011876052116978'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/08/introducao-ao-tipo-de-dado-timestamp-e.html' title='Introdução ao tipo de dado TIMESTAMP e suas variações ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0YJ39t-zN8U/SolOCL-BbpI/AAAAAAAAAec/43pJntusry0/s72-c/clock.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-7661839016679908072</id><published>2009-08-11T13:05:00.005-03:00</published><updated>2009-08-14T23:21:56.851-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mercado'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='sap'/><category scheme='http://www.blogger.com/atom/ns#' term='goldengate'/><category scheme='http://www.blogger.com/atom/ns#' term='liderança'/><category scheme='http://www.blogger.com/atom/ns#' term='erp'/><category scheme='http://www.blogger.com/atom/ns#' term='aquisição'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle mostra sua liderança mais uma vez ...</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Olá,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Bom, não sou eu quem está dizendo isso. Essa notícia chegou a mim através de e-mail, pelo fato da empresa em que trabalho &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ter uma parceria com a Oracle. Acredito que todos os parceiros também tenham recebido esta notícia da Vice-presidente de Alianças e Canais para Oracle América Latina. Para quem não sabe, a Sra. Sandra Vaz é vice-presidente de Alianças e Canais da Oracle para a América Latina e está na Oracle desde 1997, quando assumiu a gerência de Alianças Globais no Brasil. Desde então, galgou diversas posições, entre as quais a de diretora de Alianças na Oracle do Brasil e de diretora de Alianças e Canais para a América Latina. Na atual posição, que ocupa desde maio de 2005, a executiva é responsável por definir a estratégia da Oracle em toda a região no que tange às iniciativas e cobertura de mercado por meio de parcerias com distribuidores, revendas, integradores, fornecedores de hardware, consultorias internacionais e desenvolvedores independentes de software.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;No mais, deixo aqui o conteúdo da "&lt;span style="font-style: italic;"&gt;newsletter&lt;/span&gt;" que recebi intitulada de "&lt;span style="font-style: italic;"&gt;From the desk of Sandra Vaz - Oracle mostra sua liderança mais uma vez&lt;/span&gt;":&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Caros parceiros,&lt;br /&gt;&lt;br /&gt;Gostaria de compartilhar duas novidades importantes: em primeiro lugar, tenho o prazer de anunciar que, pela primeira vez na história, neste segundo trimestre, a Oracle superou amplamente a SAP em ganhos por licença. Após sofrer perdas de 11% de seus ganhos totais, a SAP perdeu 40% dos ganhos por venda de licença.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Enquanto a SAP orgulha-se de ter obtido 4% de ganhos líquidos neste trimestre, sua margem operacional continua decrescendo: nos últimos quatro trimestres a margem operacional da SAP chegou a 26%, uma baixa de dois pontos. No entanto, a margem operacional global da Oracle, apesar da conjuntura econômica internacional desfavorável, segue crescendo. Desta forma, teremos mais argumentos para convencer nossos clientes de que devem escolher a Oracle como principal provedor de tecnologia.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;A segunda novidade é outra grande notícia: a Oracle adquiriu a GoldenGate Software, dando um passo estratégico para fortalecer produtos complementares e de padrão compatível. As soluções da GoldenGate capturam e oferecem atualizações de informações críticas em tempo real, além de prover informações contínuas e sincronizadas em ambientes heterogêneos. Também melhoram a replicação de dados e a sincronização entre sistemas heterogêneos, garantindo a disponibilidade de dados contínuos para aplicações de negócios por meio de sistemas múltiplos em tempo real. Ela traz às empresas uma excelente inteligência corporativa, com análises mais precisas e oportunas de rendimento. Com essa aquisição, a Oracle e seus parceiros de negócios contam com a mais veloz e escalável solução de integração de dados em tempo real do mercado, o que complementa o valor e as estratégias de negócios futuros de produtos Oracle.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Como todos sabem, também adquirimos a Sun Microsystems oficialmente, outra empresa pioneira no setor, com quem a Oracle mantinha parcerias há vinte anos. O valor da operação foi de cerca de US$ 7,4 bilhões de dólares. De acordo com Larry Ellison, diretor executivo (CEO) da Oracle, "a aquisição da Sun transforma o setor de TI, combinando um excelente software empresarial com os principais sistemas de informática para a missão dos negócios". &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Aproveito a oportunidade para agradecer a todos mais uma vez pela dedicação e inteligência que dedicam para que nossas metas em comum sejam cumpridas no dia-a-dia.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-7661839016679908072?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/7661839016679908072/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=7661839016679908072' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7661839016679908072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7661839016679908072'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/08/oracle-mostra-sua-lideranca-mais-uma.html' title='Oracle mostra sua liderança mais uma vez ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-8431652248616099096</id><published>2009-08-03T10:43:00.019-03:00</published><updated>2009-08-14T13:32:40.518-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expdp'/><category scheme='http://www.blogger.com/atom/ns#' term='criptografia'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption_password'/><category scheme='http://www.blogger.com/atom/ns#' term='compressão'/><category scheme='http://www.blogger.com/atom/ns#' term='rar'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='impdp'/><category scheme='http://www.blogger.com/atom/ns#' term='reuse_dumpfiles'/><category scheme='http://www.blogger.com/atom/ns#' term='datapump'/><category scheme='http://www.blogger.com/atom/ns#' term='senha'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption_mode'/><category scheme='http://www.blogger.com/atom/ns#' term='zip'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption_algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>Protegendo e compactando o arquivo dump de exportação com o Oracle Export Data Pump 11g ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Neste artigo irei comentar um pouco das novas funcionalidades introduzidas no utilitário de exportação Export Data Pump (expdp) do Oracle 11g &lt;span style="font-weight: bold;"&gt;no que se refere à segurança e compressão dos dados exportados&lt;/span&gt;. É fato que os utilitários Data Pump (&lt;span style="color: rgb(51, 51, 255);"&gt;expdp/impdp&lt;/span&gt;) introduzidos à partir do Oracle 10g &lt;a href="http://eduardolegatti.blogspot.com/2008/10/por-que-aps-ter-realizado-uma-importao.html"&gt;trouxeram vários recursos e vantagens&lt;/a&gt; sobre os utilitários tradicionais (&lt;span style="color: rgb(255, 0, 0);"&gt;exp/imp&lt;/span&gt;) como mais rapidez e flexibilidade nas operações de exportação/importação dos dados, entre outros. Portanto,  destaquei alguns dos novos parâmetros adicionados ao utilitário &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Export Data Pump da versão 11g:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; &lt;span style="font-weight: bold;"&gt;expdp help=y&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Export: Release 11.1.0.6.0 - Production on Segunda-Feira, 03 Agosto, 2009 09:08:45&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Palavra-Chave         Descrição (Default)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------- ------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;COMPRESSION           Reduzir o tamanho do conteúdo do arquivo de dump onde houver &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                      palavra-chave válida. Os valores são: ALL, (METADATA_ONLY), &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                      DATA_ONLY e NONE.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ENCRYPTION            Criptografa parte ou todo o arquivo de dump onde houver a palavra-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                      chave válida. Os valores são: ALL, DATA_ONLY, METADATA_ONLY,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                      ENCRYPTED_COLUMNS_ONLY ou NONE.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ENCRYPTION_ALGORITHM  Especifica como a criptografia deve ser feita onde for válido. Os&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                      valores de palavra-chave são: (AES128), AES192 e AES256.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ENCRYPTION_MODE       Método de gerar chave de criptografia onde houver palavra-chave &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                      válida. Os valores são: DUAL, PASSWORD e (TRANSPARENT).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ENCRYPTION_PASSWORD   Chave de senha para criar dados de coluna criptografados. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;REUSE_DUMPFILES       Sobregrava o arquivo de dump de destino, se existir (N).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0YJ39t-zN8U/SnsZLWL8BJI/AAAAAAAAAc0/r3k7Pgqg1SA/s1600-h/locker.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 68px; height: 70px;" src="http://3.bp.blogspot.com/_0YJ39t-zN8U/SnsZLWL8BJI/AAAAAAAAAc0/r3k7Pgqg1SA/s400/locker.jpg" alt="" id="BLOGGER_PHOTO_ID_5366911063666984082" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Em versões anteriores, se quiséssemos proteger um arquivo dump de exportação de forma &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;que somente pessoas autorizadas pudessem ter acesso ao seu conteúdo afim de realizar uma importação, teríamos que "&lt;span style="font-style: italic;"&gt;compactar&lt;/span&gt;" o arquivo dump utilizando compactadores de terceiros e, através de senha, proteger o mesmo. No entanto, além de não ser uma tarefa muito interessante, mesmo assim isso não impediria que o arquivo compactado fosse "&lt;span style="font-style: italic;"&gt;crackeado&lt;/span&gt;" através de softwares específicos para estes tipos de compactação. Uma outra forma seria a de exportar os dados utilizando um usuário de banco de dados &lt;span style="color: rgb(51, 51, 255);"&gt;com privilégios DBA&lt;/span&gt; na qual, para importar o arquivo, apenas outro usuário com privilégios DBA ou com privilégios &lt;span style="font-weight: bold;"&gt;IMP_FULL_DATABASE&lt;/span&gt; conseguiria importar o arquivo. Entretanto, nada impediria alguém de simplesmente carregar o arquivo dump para outro banco de dados e, com os privilégios apropriados, importar os dados.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A boa notícia é que à partir do Oracle 11g o utilitário de exportação Export Data Pump (&lt;span style="color: rgb(255, 0, 0);"&gt;expdp&lt;/span&gt;) veio com algumas inovações  como o parâmetro &lt;span style="font-weight: bold;"&gt;ENCRYPTION_PASSWORD&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;ENCRYPTION_ALGORITHM&lt;/span&gt; na qual poderemos simplesmente definir uma senha criptografada que será armazenada no arquivo dump de exportação. Neste caso, a importação do arquivo através do utilitário Import Data Pump (&lt;span style="color: rgb(255, 0, 0);"&gt;impdp&lt;/span&gt;) &lt;span style="color: rgb(0, 153, 0);"&gt;somente poderá ser realizada &lt;span style="font-weight: bold;"&gt;diante da digitação da senha&lt;/span&gt; que foi definida na criação do arquivo dump de exportação&lt;/span&gt;. Vale a pena salientar que na versão do utilitário &lt;span style="color: rgb(255, 0, 0);"&gt;expdp 10g R2&lt;/span&gt;, o parâmetro &lt;span style="font-weight: bold;"&gt;ENCRYPTION_PASSWORD&lt;/span&gt; era aplicado apenas em colunas encriptadas.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0YJ39t-zN8U/SnbnngIoABI/AAAAAAAAAck/Okypurd1H2g/s1600-h/compress.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 68px; height: 70px;" src="http://3.bp.blogspot.com/_0YJ39t-zN8U/SnbnngIoABI/AAAAAAAAAck/Okypurd1H2g/s400/compress.jpg" alt="" id="BLOGGER_PHOTO_ID_5365730671885549586" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Bom, antes de realizar um exemplo prático sobre este recurso, iniciarei o artigo com &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;um outro recurso que foi adicionado ao utilitário de exportação (&lt;span style="color: rgb(255, 0, 0);"&gt;expdp&lt;/span&gt;) chamado &lt;span style="color: rgb(51, 51, 255);"&gt;COMPRESSION&lt;/span&gt;. Com esta opção poderemos definir um nível de compressão não só dos metadados, mas também dos dados. &lt;span style="font-weight: bold;"&gt;Na versão 10g, por padrão, a compressão é realizada somente no nível de metadados e, na versão 11g, esta compressão foi estendida também para o nível de dados&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Abaixo realizarei alguns testes comparando a taxa de compressão entre as opções disponíveis:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;  &lt;span style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;compression={all | data_only | metadata_only | none}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;onde,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;    * &lt;span style="font-weight: bold;"&gt;ALL&lt;/span&gt;: Ambos os metadados e dados são compactados;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;    * &lt;span style="font-weight: bold;"&gt;DATA_ONLY&lt;/span&gt;: Somente os dados são compactados.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;    * &lt;span style="font-weight: bold;"&gt;METADATA_ONLY&lt;/span&gt;: Somente os metadados são compactados. Esta é a opção padrão.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;    * &lt;span style="font-weight: bold;"&gt;NONE&lt;/span&gt;: Nada é compactado.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apenas como ilustração, irei exportar um schema de banco de dados na qual atualmente possui aproximadamente &lt;span style="color: rgb(51, 51, 255);"&gt;460 MB&lt;/span&gt; de dados (entre dados tabelas e índices).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select sum(bytes)/1024/1024 "TOTAL (MB)" from dba_segments where owner='&lt;span style="color: rgb(0, 153, 0);"&gt;SCOTT&lt;/span&gt;';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TOTAL (MB)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;span style="color: rgb(51, 51, 255);"&gt;460,875&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o expdp da versão 11g (sem nenhuma compactação)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_compress_none.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     &lt;span style="color: rgb(255, 0, 0);"&gt;compression=none&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o expdp da versão 10g (compactação padrão)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp10.dmp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o expdp da versão 11g (compactando apenas metadados)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_compress_metadata_only.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     &lt;span style="color: rgb(255, 0, 0);"&gt;compression=metadata_only&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o expdp da versão 11g (compactando apenas dados)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_compress_data_only.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     &lt;span style="color: rgb(255, 0, 0);"&gt;compression=data_only&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o expdp da versão 11g (compactando dados e metadados)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_compress_all.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     &lt;span style="color: rgb(255, 0, 0);"&gt;compression=all&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Utilizando o exp 11g tradicional&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; exp scott/tiger file=exp_traditional.dmp&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Abrindo um parênteses aqui, podemos ver abaixo que a estimativa de tamanho para o dump gerado será de aproximadamente &lt;span style="color: rgb(51, 51, 255);"&gt;413 MB&lt;/span&gt;, bem próximo ao tamanho real dos arquivos de exportação gerados, que não passaram de &lt;span style="color: rgb(255, 0, 0);"&gt;395 MB&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Export: Release 11.1.0.6.0 - Production on Segunda-Feira, 03 Agosto, 2009 09:10:35&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimativa em andamento com o método BLOCKS...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE_DATA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimativa total usando o método de BLOCKS: &lt;span style="color: rgb(51, 51, 255);"&gt;413.8 MB&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vamos então aos resultados dos tamanhos dos arquivos dump gerados (em MB) pelas exportações&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[Linux tmp]$ &lt;span style="font-weight: bold;"&gt;ls -hlatr *.dmp&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(1)&lt;/span&gt; -rw-r----- 1 oracle oinstall 395M Ago  3 09:12 expdp11_compress_none.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(2)&lt;/span&gt; -rw-r----- 1 oracle oinstall 384M Ago  3 09:19 expdp10.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(3)&lt;/span&gt; -rw-r----- 1 oracle oinstall 384M Ago  3 09:25 expdp11_compress_metadata_only.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(4)&lt;/span&gt; -rw-r----- 1 oracle oinstall 137M Ago  3 09:32 expdp11_compress_data_only.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(5)&lt;/span&gt; -rw-r----- 1 oracle oinstall 125M Ago  3 09:39 expdp11_compress_all.dmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(6)&lt;/span&gt; -rw-r----- 1 oracle oinstall 382M Ago  3 09:42 exp_traditional.dmp&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;De acordo com a listagem acima, a primeira exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(1)&lt;/span&gt; realizada utilizando o expdp da versão 11g com a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=none&lt;/span&gt;) gerou um arquivo dump de &lt;span style="color: rgb(255, 0, 0);"&gt;395 MB&lt;/span&gt; de tamanho.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A segunda exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(2)&lt;/span&gt; realizada utilizando o expdp da versão 10g gerou um arquivo dump de &lt;span style="color: rgb(255, 0, 0);"&gt;384 MB&lt;/span&gt; de tamanho, ou seja, o arquivo foi compactado a uma proporção de cerca de &lt;span style="color: rgb(51, 51, 255);"&gt;97%&lt;/span&gt; em relação ao arquivo dump gerado pela exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(1)&lt;/span&gt; na qual não foi utilizada nenhuma opção de compressão. Como dito anteriormente, apenas os metadados são compactados na versão 10g:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://2.bp.blogspot.com/_0YJ39t-zN8U/SnbmyF19sLI/AAAAAAAAAbs/P3yx1XkgbI0/s1600-h/figura1.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_0YJ39t-zN8U/SnbmyF19sLI/AAAAAAAAAbs/P3yx1XkgbI0/s400/figura1.png" alt="" id="BLOGGER_PHOTO_ID_5365729754294890674" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A terceira exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(3)&lt;/span&gt; realizada utilizando o expdp da versão 11g com a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=metadata_only&lt;/span&gt;) gerou um arquivo dump de &lt;span style="color: rgb(255, 0, 0);"&gt;384 MB&lt;/span&gt;, ou seja, a mesma taxa de compressão que foi utilizada com o utilitário expdp da versão 10g.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://1.bp.blogspot.com/_0YJ39t-zN8U/Snbm82WlpDI/AAAAAAAAAb0/7wUhyWbvs2M/s1600-h/figura2.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_0YJ39t-zN8U/Snbm82WlpDI/AAAAAAAAAb0/7wUhyWbvs2M/s400/figura2.png" alt="" id="BLOGGER_PHOTO_ID_5365729939115320370" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A quarta exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(4)&lt;/span&gt; realizada utilizando o expdp da versão 11g com a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=data_only&lt;/span&gt;) gerou um arquivo dump de &lt;span style="color: rgb(255, 0, 0);"&gt;137 MB&lt;/span&gt;, ou seja, o arquivo foi compactado a uma proporção de cerca de &lt;span style="color: rgb(51, 51, 255);"&gt;35%&lt;/span&gt; em relação ao arquivo dump gerado pela exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(3)&lt;/span&gt;, onde foi utilizada a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=metadata_only&lt;/span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://4.bp.blogspot.com/_0YJ39t-zN8U/SnbnDbwazII/AAAAAAAAAb8/sYuJjy1_efM/s1600-h/figura3.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SnbnDbwazII/AAAAAAAAAb8/sYuJjy1_efM/s400/figura3.png" alt="" id="BLOGGER_PHOTO_ID_5365730052234988674" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A quinta exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(5)&lt;/span&gt; realizada utilizando o expdp da versão 11g com a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=all&lt;/span&gt;) gerou um arquivo dump de &lt;span style="color: rgb(255, 0, 0);"&gt;125 MB&lt;/span&gt;, ou seja, o arquivo foi compactado a uma proporção de cerca de &lt;span style="color: rgb(51, 51, 255);"&gt;32%&lt;/span&gt; em relação ao arquivo dump gerado pela exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(4)&lt;/span&gt;, onde foi utilizada a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=data_only&lt;/span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://4.bp.blogspot.com/_0YJ39t-zN8U/SnbnK1pA9bI/AAAAAAAAAcE/Uwr5AlJ6ptM/s1600-h/figura4.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SnbnK1pA9bI/AAAAAAAAAcE/Uwr5AlJ6ptM/s400/figura4.png" alt="" id="BLOGGER_PHOTO_ID_5365730179442341298" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para não deixar o  export tradicional (&lt;span style="color: rgb(51, 51, 255);"&gt;exp&lt;/span&gt;) de lado, a sexta exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(6)&lt;/span&gt; foi realizada utilizando o exp  da versão 11g que gerou um arquivo dump de &lt;span style="color: rgb(255, 0, 0);"&gt;382 MB&lt;/span&gt;, ou seja, o arquivo criado teve uma proporção de cerca de &lt;span style="color: rgb(51, 51, 255);"&gt;99%&lt;/span&gt; em relação ao arquivo dump gerado pela exportação &lt;span style="color: rgb(0, 153, 0);"&gt;(3)&lt;/span&gt;, onde foi utilizado o utilitário expdp com a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=data_only&lt;/span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://2.bp.blogspot.com/_0YJ39t-zN8U/SnbnRAoxYSI/AAAAAAAAAcM/qyHVwDOq_n0/s1600-h/figura5.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_0YJ39t-zN8U/SnbnRAoxYSI/AAAAAAAAAcM/qyHVwDOq_n0/s400/figura5.png" alt="" id="BLOGGER_PHOTO_ID_5365730285473325346" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apenas para fins de comparação, irei utilizar um dos compactadores mais conhecidos do mercado para de compactar o arquivo de &lt;span style="color: rgb(255, 0, 0);"&gt;384 MB&lt;/span&gt; (&lt;span style="color: rgb(51, 51, 255);"&gt;expdp11_compress_metadata_only.dmp&lt;/span&gt;).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[Linux tmp]$ &lt;span style="font-weight: bold;"&gt;zip expdp11_compress_metadata_only.zip expdp11_compress_metadata_only.dmp&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;adding: expdp11_compress_metadata_only.dmp (deflated 69%)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[Linux tmp]$ &lt;span style="font-weight: bold;"&gt;ls -lh *.zip&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r--r-- 1 oracle oinstall &lt;span style="color: rgb(255, 0, 0);"&gt;119M&lt;/span&gt; Ago 03 09:45 expdp11_compress_metadata_only.zip&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Podemos perceber acima que o arquivo foi compactado a uma proporção de cerca de &lt;span style="color: rgb(51, 51, 255);"&gt;31%&lt;/span&gt; em relação ao arquivo original, ou seja, praticamente a mesma proporção utilizando a opção (&lt;span style="color: rgb(255, 0, 0);"&gt;compression=data_only&lt;/span&gt;) do utilitário expdp.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://1.bp.blogspot.com/_0YJ39t-zN8U/SnbnX5lp_nI/AAAAAAAAAcU/EzYkYmZXMMI/s1600-h/figura6.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_0YJ39t-zN8U/SnbnX5lp_nI/AAAAAAAAAcU/EzYkYmZXMMI/s400/figura6.png" alt="" id="BLOGGER_PHOTO_ID_5365730403840294514" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Já que utilizei o "zip" porque não não usar o famoso "Winrar"? Fazendo um teste, o arquivo original de &lt;span style="color: rgb(255, 0, 0);"&gt;384 MB&lt;/span&gt; foi compactado a uma proporção de cerca de &lt;span style="color: rgb(51, 51, 255);"&gt;17%&lt;/span&gt;, ou seja, o tamanho do arquivo  de &lt;span style="color: rgb(255, 0, 0);"&gt;384 MB&lt;/span&gt; foi reduzido para &lt;span style="color: rgb(255, 0, 0);"&gt;65,8 MB&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html" target="_blank" onclick="window.open('http://1.bp.blogspot.com/_0YJ39t-zN8U/Snbnet3OI7I/AAAAAAAAAcc/0sPV3ClENkU/s1600-h/figura7.png','oracle','scrollbars=yes,menubar=no,width=600,height=120,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_0YJ39t-zN8U/Snbnet3OI7I/AAAAAAAAAcc/0sPV3ClENkU/s400/figura7.png" alt="" id="BLOGGER_PHOTO_ID_5365730520951825330" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No geral, e deixando de lado os compactadores de terceiros, podemos perceber uma diferença "&lt;span style="font-style: italic;"&gt;gritante&lt;/span&gt;" de compressão do arquivo dump de exportação quando utilizamos as opções (&lt;span style="color: rgb(255, 0, 0);"&gt;data_only&lt;/span&gt;) ou (&lt;span style="color: rgb(255, 0, 0);"&gt;all&lt;/span&gt;) do utilitário Export Data Pump 11g.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-family:courier new;font-size:130%;"  &gt;Protegendo o arquivo dump de exportação com senha&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Agora irei comentar um pouco sobre outro recurso muito interessante que, como dito anteriormente, à partir do Oracle 11g, o utilitário de exportação Export Data Pump (&lt;span style="color: rgb(255, 0, 0);"&gt;expdp&lt;/span&gt;) disponibilizou os parâmetros &lt;span style="font-weight: bold;"&gt;ENCRYPTION_PASSWORD&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;ENCRYPTION_ALGORITHM&lt;/span&gt; na qual poderemos definir de forma "&lt;span style="font-style: italic;"&gt;nativa&lt;/span&gt;",  uma senha criptografada que será armazenada no arquivo dump de exportação. Neste caso, &lt;span style="color: rgb(0, 153, 0);"&gt;a importação do arquivo através do utilitário Import Data Pump (impdp) &lt;span style="font-weight: bold;"&gt;somente poderá ser realizada&lt;/span&gt; diante da digitação da senha que foi definida na criação do arquivo dump de exportação&lt;/span&gt;. Meu foco aqui será  demonstrar a utilização do método (modo) &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;PASSWORD&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;De acordo com a &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28319/dp_export.htm"&gt;documentação&lt;/a&gt;, o "&lt;span style="font-style: italic;"&gt;Data pump encryption&lt;/span&gt;" é um recurso relevante apenas para instalações do Oracle 11g Enterprise Edition. Para maiores detalhes sobre os parâmetros abaixo, recomendo acessar a documentação oficial.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O parâmetro ENCRYPTION possui as seguintes opções:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:100%;" &gt;ENCRYPTION = {all | data_only | encrypted_columns_only | metadata_only | none}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O parâmetro ENCRYPTION_PASSWORD possui as seguintes opções de algoritmos para criptografia:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;font-size:85%;"  &gt; ENCRYPTION_ALGORITHM = { AES128 | AES192 | AES256 }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O parâmetro ENCRYPTION_MODE especifica o método para geração da chave de criptografia:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;font-size:85%;"  &gt; ENCRYPTION_MODE = { DUAL | PASSWORD | TRANSPARENT }&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O parâmetro ENCRYPTION_PASSWORD é utilizado para informarmos a senha que será criptografada.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vale a pena salientar que o valores padrões desses parâmetros dependerão de uma combinação dos mesmos. Se somente o parâmetro &lt;span style="font-weight: bold;"&gt;ENCRYPTION_PASSWORD&lt;/span&gt; for especificado, então o parâmetro ENCRYPTION terá por padrão o valor &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;ALL&lt;/span&gt;. Se nenhum dos parâmetros ENCRYPTION e ENCRYPTION_PASSWORD for especificado, então o parâmetro ENCRYPTION terá por padrão o valor &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;NONE&lt;/span&gt;. No caso do parâmetro &lt;span style="font-weight: bold;"&gt;ENCRYPTION_ALGORITHM&lt;/span&gt;, seu valor padrão é &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;AES128&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vamos então a um exemplo prático:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_senha.dmp &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption=&lt;span style="color: rgb(255, 0, 0);"&gt;all&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_mode=&lt;span style="color: rgb(255, 0, 0);"&gt;password&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_password=&lt;span style="color: rgb(51, 51, 255);"&gt;minhasenha&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após a execução do comando acima o arquivo dump gerado foi criado como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[Linux tmp]$ &lt;span style="font-weight: bold;"&gt;ls -hlatr *.dmp&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-rw-r----- 1 oracle oinstall 384M Ago  3 09:50 expdp11_senha.dmp&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei simular agora a importação do arquivo dump para um outro schema de banco de dados. Para isso irei criar o usuário de banco de dados &lt;span style="font-weight: bold;"&gt;ADAM&lt;/span&gt; como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;C:\&gt; &lt;span style="font-weight: bold;"&gt;sqlplus system/manager&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 11.1.0.6.0 - Production on Seg Ago 3 09:55:06 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; &lt;span style="font-weight: bold;"&gt;create user adam identified by jones default tablespace users;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; &lt;span style="font-weight: bold;"&gt;grant connect,resource to adam;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Concessão bem-sucedida.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após a criação do usuário &lt;span style="font-weight: bold;"&gt;ADAM&lt;/span&gt; no banco de dados, irei realizar a importação do arquivo dump criptografado:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando a importação sem informar a senha&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt; impdp adam/jones DIRECTORY=datapump_dir DUMPFILE=expdp11_senha.dmp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Import: Release 11.1.0.6.0 - Production on Segunda-Feira, 03 Agosto, 2009 09:57:46&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-39002: operação inválida&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-39174: A senha de criptografia deve ser fornecida.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando a importação especificando uma senha inválida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt; impdp adam/jones DIRECTORY=datapump_dir DUMPFILE=expdp11_senha.dmp &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_password=&lt;span style="color: rgb(51, 51, 255);"&gt;senhaerrada&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Import: Release 11.1.0.6.0 - Production on Segunda-Feira, 03 Agosto, 2009 10:03:55&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-39002: operação inválida&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-39176: A senha de criptografia está incorreta.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando a importação especificando a senha correta&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt; impdp adam/jones DIRECTORY=datapump_dir DUMPFILE=expdp11_senha.dmp &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_password=&lt;span style="color: rgb(51, 51, 255);"&gt;minhasenha&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     remap_schema=scott:adam&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Import: Release 11.1.0.6.0 - Production on Segunda-Feira, 03 Agosto, 2009 10:05:48&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Tabela-mestre "ADAM"."SYS_IMPORT_FULL_01" carregada/descarregada com sucesso&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando "ADAM"."SYS_IMPORT_FULL_01":  adam/******** DIRECTORY=datapump_dir&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DUMPFILE=expdp11_senha.dmp encryption_password=******** remap_schema=scott:adam&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/SEQUENCE/SEQUENCE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE_DATA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. . importou "ADAM"."EMP"                        330.6 MB    1352 linhas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. . importou "ADAM"."DEPT"                       9.157 MB   55417 linhas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para finalizar, o Export Data Pump da versão 11g, trouxe também um novo parâmetro chamado &lt;span style="font-weight: bold;"&gt;REUSE_DUMPFILES&lt;/span&gt; que poderá ser utilizado para que possamos sobrescrever um arquivo dump gerado anteriormente &lt;span style="font-weight: bold;"&gt;sem a necessidade de ter que exclui-lo manualmente&lt;/span&gt; como nas releases anteriores (10g R1/R2):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_senha.dmp &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption=all &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_mode=password &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_password=minhasenha&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Export: Release 11.1.0.6.0 - Production on Segunda-Feira, 03 Agosto, 2009 10:09:38&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-39001: valor de argumento inválido&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-39000: especificação de arquivo de dump incorreto&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-31641: não é possível criar o arquivo de dump "/tmp/expdp11_senha.dmp"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;ORA-27038: arquivo criado já existe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 0);font-family:courier new;" &gt;Additional information: 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt; expdp scott/tiger DIRECTORY=datapump_dir DUMPFILE=expdp11_senha.dmp &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption=all &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_mode=password &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     encryption_password=minhasenha &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;     &lt;span style="color: rgb(51, 51, 255);"&gt;reuse_dumpfiles=y&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Export: Release 11.1.0.6.0 - Production on Segunda-Feira, 01 Agosto, 2009 10:15:26&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2003, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/******** DIRECTORY=datapump_dir &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DUMPFILE=expdp11_senha.dmp encryption=all encryption_mode=password &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;encryption_password=******** reuse_dumpfiles=y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimativa em andamento com o método BLOCKS...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE_DATA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estimativa total usando o método de BLOCKS: 413.8 MB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/SEQUENCE/SEQUENCE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TABLE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/INDEX/INDEX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/COMMENT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/FUNCTION/FUNCTION&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/PROCEDURE/PROCEDURE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/VIEW/VIEW&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/TRIGGER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Processando o tipo de objeto SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. . exportou "SCOTT"."EMP"                  330.6 MB    1352 linhas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. . exportou "SCOTT"."DEPT"                 9.157 MB   55417 linhas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-8431652248616099096?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/8431652248616099096/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=8431652248616099096' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/8431652248616099096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/8431652248616099096'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/08/protegendo-e-compactando-o-arquivo-dump.html' title='Protegendo e compactando o arquivo dump de exportação com o Oracle Export Data Pump 11g ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0YJ39t-zN8U/SnsZLWL8BJI/AAAAAAAAAc0/r3k7Pgqg1SA/s72-c/locker.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-6007805418424821695</id><published>2009-07-27T09:39:00.007-03:00</published><updated>2009-08-14T13:32:07.030-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='psu'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='atualização'/><category scheme='http://www.blogger.com/atom/ns#' term='estratégia'/><category scheme='http://www.blogger.com/atom/ns#' term='critical patch update'/><category scheme='http://www.blogger.com/atom/ns#' term='patch set update'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle metalink'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><title type='text'>Oracle anuncia nova estratégia para aplicação de patches - Patch Set Updates (PSU)</title><content type='html'>&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Recentemente, a Oracle anunciou (14/07) um novo método para &lt;a href="http://eduardolegatti.blogspot.com/2008/12/atualizando-o-oracle-10g-10201-para.html"&gt;aplicação de correções&lt;/a&gt; em seus produtos. Esta nova categoria de pacote de correção se chama &lt;span style="color: rgb(0, 153, 0);"&gt;Patch Set Update (PSU)&lt;/span&gt; e, assim como o &lt;span style="color: rgb(255, 0, 0);"&gt;Critical Patch Update (CPU)&lt;/span&gt;, será lançado trimestralmente (&lt;span style="color: rgb(51, 51, 255);"&gt;Janeiro&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;Abril&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;Julho&lt;/span&gt;, &lt;span style="color: rgb(51, 51, 255);"&gt;Outubro&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Este novo pacote de correção além de incluir o último &lt;span style="color: rgb(255, 0, 0);"&gt;CPU&lt;/span&gt;,  também será cumulativo. De acordo com o &lt;a href="http://metalink.oracle.com/"&gt;Oracle My Support (Metalink)&lt;/a&gt;, o primeiro &lt;span style="color: rgb(0, 153, 0);"&gt;PSU&lt;/span&gt; foi lançado para o Oracle 10g (10.2.0.4) e, para o Oracle 11g, a previsão de lançamento do primeiro &lt;span style="color: rgb(0, 153, 0);"&gt;PSU&lt;/span&gt; será em Outubro/2009.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; &lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Como dito anteriormente, o &lt;span style="color: rgb(0, 153, 0);"&gt;PSU&lt;/span&gt; será cumulativo, ou seja, cada &lt;span style="color: rgb(0, 153, 0);"&gt;PSU&lt;/span&gt; conterá todas as correções do seu antecessor. Vale a pena salientar que estes pacotes de atualização só estão disponíveis para download através do site Oracle Metalink (My Oracle Support). Portanto, para quem quiser realizar o download das atualizações, terá que ter um contrato de suporte com a Oracle e ter em mãos um código de identificador de suporte válido (Customer Support Identifier – CSI).&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; &lt;span style="font-weight: bold;font-family:courier new;" &gt;Aplicações do &lt;span style="color: rgb(0, 153, 0);"&gt;PSU&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;10.2.0.4.[&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;0&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;] --&gt; 10.2.0.4.[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;] --&gt; 10.2.0.4.[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;2&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;] --&gt; 10.2.0.4.[&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;3&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;] ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0YJ39t-zN8U/Sm2hGO8yY5I/AAAAAAAAAbk/F3YmE06YjmI/s1600-h/psu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 216px;" src="http://2.bp.blogspot.com/_0YJ39t-zN8U/Sm2hGO8yY5I/AAAAAAAAAbk/F3YmE06YjmI/s400/psu.png" alt="" id="BLOGGER_PHOTO_ID_5363119859732472722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Para maiores informações, acesse as notas referentes ao PSU no site do &lt;a href="http://metalink.oracle.com/"&gt;My Oracle Support (Metalink)&lt;/a&gt;:  &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;854428.1 - Introduction to Oracle Patch Set Updates (PSU)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;850471.1 - Oracle Announces First Patch Set Update For Oracle Database Release 10.2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;854473.1 - Known Issues with this Patch Set Update 10.2.0.4.1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;8576156.8 - Bug 8576156 10.2.0.4.1 Patch Set Update (PSU)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-6007805418424821695?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/6007805418424821695/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=6007805418424821695' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/6007805418424821695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/6007805418424821695'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/07/oracle-anuncia-nova-estrategia-para.html' title='Oracle anuncia nova estratégia para aplicação de patches - Patch Set Updates (PSU)'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0YJ39t-zN8U/Sm2hGO8yY5I/AAAAAAAAAbk/F3YmE06YjmI/s72-c/psu.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-3636741588745916883</id><published>2009-07-15T10:48:00.007-03:00</published><updated>2009-08-14T13:31:39.301-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlplus'/><category scheme='http://www.blogger.com/atom/ns#' term='mercado'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='compatibilidade'/><category scheme='http://www.blogger.com/atom/ns#' term='describe'/><category scheme='http://www.blogger.com/atom/ns#' term='edbplus'/><category scheme='http://www.blogger.com/atom/ns#' term='dbms_metadata'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Testando algumas das compatibilidade do Postgres Plus Advanced Server com o Oracle</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para quem teve a oportunidade de ler o &lt;a href="http://eduardolegatti.blogspot.com/2009/04/mercado-de-banco-de-dados-mais-acirrado.html"&gt;artigo de Abril de 2009&lt;/a&gt; intitulado de "Mercado de banco de dados mais acirrado ...", &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;pôde perceber que o Postgres &lt;span style="color: rgb(255, 0, 0);"&gt;P&lt;/span&gt;lus &lt;span style="color: rgb(255, 0, 0);"&gt;A&lt;/span&gt;dvanced &lt;span style="color: rgb(255, 0, 0);"&gt;S&lt;/span&gt;erver (&lt;span style="color: rgb(255, 0, 0);"&gt;PAS&lt;/span&gt;) trouxe de forma &lt;span style="font-weight: bold;"&gt;embutida&lt;/span&gt; (através de um catálogo adicional), algumas funcionalidades compatíveis com o Oracle, como suporte ao Oracle PL/SQL, algumas views de dicionários de banco de dados USER/ALL/DBA_*, Public Synonyms, Sequences (CURRVAL, NEXTVAL), functions, packages, triggers, tipos de dados (CHAR, VARCHAR, VARCHAR2, NUMBER, BLOB, CLOB, DATE), pseudo-coluna ROWNUM, a tabela DUAL, entre algumas outras funcionalidades. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apesar de não ser um artigo "diretamente" direcionado ao banco de dados Oracle, mas, &lt;span style="font-weight: bold;"&gt;já que envolve algumas funcionalidades do próprio Oracle&lt;/span&gt;, então irei demonstrar alguns testes que timidamente estou começando a realizar, afim de testar tais compatibilidades. Irei utilizar a versão &lt;a href="http://www.enterprisedb.com/"&gt;8.3 R2 (8.3.0.106) do Postgres PAS&lt;/a&gt; para realizar algumas operações básicas.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vale a pena salientar que no caso do PostgreSQL, o mesmo utiliza um catálogo de dicionários de dados próprio (&lt;span style="color: rgb(51, 51, 255);"&gt;pg_catalog&lt;/span&gt;) e um outro catálogo conforme definido pelo padrão ANSI-92 (&lt;span style="color: rgb(51, 51, 255);"&gt;information_schema&lt;/span&gt;), na qual o Oracle não segue. Fazendo uma pequena comparação, um mesmo catálogo de dicionário de dados no Oracle, está sobre propriedade do usuário &lt;span style="color: rgb(255, 0, 0);"&gt;SYS&lt;/span&gt; através de inúmeras views de dicionário de dados. Uma outra forma de se obter informações de metadados no Oracle é utilizando o comando &lt;span style="color: rgb(0, 153, 0);"&gt;[DESC]RIBE&lt;/span&gt; no SQL*Plus ou através da package &lt;a href="http://eduardolegatti.blogspot.com/2008/07/extraindo-comando-ddl-com-o-pacote.html"&gt;&lt;span&gt;DBMS_METADATA&lt;/span&gt;&lt;/a&gt; disponível desde a versão  Oracle 9i. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Portanto, no caso do &lt;a href="http://www.enterprisedb.com/"&gt;Postgres PAS&lt;/a&gt;, foi criado um catálogo chamado de &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Redwood(sys)&lt;/span&gt; para fornecer algumas das views de dicionário de dados do Oracle. Em se tratando de algumas incompatibilidades conhecidas entre o entre o PostgreSQL e o Oracle, posso citar que o pacote de compatibilidade com o Oracle visa estender algumas funcionalidades do Postgres como:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso de views de dicionário de dados USER/ALL/DBA_* mais comuns;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;  Permitir a execução de códigos escritos em PL/SQL estendendo o uso de stored procedures, entre outros;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso do operador (+) em junções externas (outer joins);&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso de comandos como CREATE USER, DROP USER, ALTER USER, entre outros;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso do tipo de dado VARCHAR2 pois no PostgreSQL apenas existe o tipo VARCHAR;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso do tipo de dado NUMBER pois no PostgreSQL apenas existe o tipo NUMERIC;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso do tipo de dado CLOB pois no PostgreSQL apenas existe o tipo TEXT;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso do tipo de dado BLOB pois no PostgreSQL o mesmo é implementado através dos tipos BYTEA e OID;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir suporte à função DECODE, já que PostgreSQL isso é realizado através de expressões CASE;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso da função NVL já que PostgreSQL temos apenas o suporte da função COALESCE;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso das funções SYSDATE e SYSTIMESTAMP no PostgreSQL;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso do operador MINUS já que PostgreSQL implementa o operador EXCEPT;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso da pseudo-coluna ROWNUM já que o PostgreSQL implementa o uso da cláusula LIMIT e OFSET;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso das funções (CURRVAL, NEXTVAL) no uso de seqüências utilizando a mesma sintaxe do Oracle;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; Permitir o uso da tabela DUAL já que no PostgreSQL a mesma não é necessária;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; entre outras funcionalidades ...&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Agora indo para a prática, após instalado e configurado o Postgres PAS, foi criado o banco de dados chamado de &lt;span style="color: rgb(0, 153, 0);"&gt;BD01&lt;/span&gt; como demonstrado na figura abaixo. A partir de agora, irei utilizar o utilitário &lt;span style="color: rgb(51, 51, 255);"&gt;EDB*Plus&lt;/span&gt; fornecido junto com o Postgres PAS, na qual poderemos perceber mais abaixo, ser nada mais do que um "&lt;span style="font-style: italic;"&gt;clone magro&lt;/span&gt;" do &lt;span style="color: rgb(255, 0, 0);"&gt;SQL*Plus&lt;/span&gt; ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0YJ39t-zN8U/Sl3bPhQ7HOI/AAAAAAAAAbc/53IcJEY5r5s/s1600-h/database.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_0YJ39t-zN8U/Sl3bPhQ7HOI/AAAAAAAAAbc/53IcJEY5r5s/s400/database.png" alt="" id="BLOGGER_PHOTO_ID_5358680191314631906" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Conectando com o super-usuário&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt;edbplus enterprisedb/manager@localhost:5444/bd01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Connected to EnterpriseDB 8.3.0.106 (localhost:5444/bd01) AS enterprisedb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EDB*Plus: Release 8.3 (Build 18)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 2008-2009, EnterpriseDB Corporation.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Mostrando o usuário corrente que está logado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; show user&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;USER is "enterprisedb"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando a versão do banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; select * from v$version;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BANNER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;Oracle Database 10g Edition Release 10.2.0.1.0 - P&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;PL/SQL Release 10.2.0.1.0 - Production is similar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;CORE 10.2.0.1.0 Production is similar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Mostrando a data atual&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select to_char(sysdate,'dd/mm/yyyy') from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TO_CHAR&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;15/07/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Criando um usuário/schema de teste&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; create user scott identified by tiger;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Role created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Concedendo algumas atribuições&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; grant connect,resource,dba to scott;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Role granted.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Concetando com o usuário SCOTT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; connect scott/tiger@localhost:5444/bd01;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Disconnected from EnterpriseDB Database.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Connected to EnterpriseDB 8.3.0.106 (localhost:5444/bd01) AS scott&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Mostrando o usuário corrente que está logado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; show user&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;USER is "scott"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Mostrando as opções disponíveis no EDB*Plus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; show all&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;autocommit      OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;colsep          " "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;define          "&amp;amp;"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo            OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FEEDBACK ON for 6 row(s).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;flush           ON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;heading         ON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;headsep         "|"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linesize        80&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;newpage         1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;null            " "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pagesize        14&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pause           OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;serveroutput    OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;spool           OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlcase         MIXED&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlprompt       "SQL&gt; "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sqlterminator   ";"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;suffix          ".sql"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;termout         ON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;timing          OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;verify          ON&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;USER is         "scott"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HOST is         "localhost"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PORT is         "5444"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DATABASE is     "bd01"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;VERSION is      "8.3.0.106"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Obtendo informações da estrutura da view DBA_USERS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; desc dba_users&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Name                                     Null?    Data Type&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ---------------------------------------- -------- ---------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; USERNAME                                          CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; USER_ID                                           OID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; PASSWORD                                          VARCHAR2(30)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ACCOUNT_STATUS                                    VARCHAR2(32)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; LOCK_DATE                                         DATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; EXPIRY_DATE                                       DATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; DEFAULT_TABLESPACE                                VARCHAR2(30)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; TEMPORARY_TABLESPACE                              VARCHAR2(30)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; CREATED                                           DATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; PROFILE                                           VARCHAR2(30)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; INITIAL_RSRC_CONSUMER_GROUP                       VARCHAR2(30)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; EXTERNAL_NAME                                     VARCHAR2(4000)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando usuários/schemas disponíveis no banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; set linesize 80&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select username,password,default_tablespace,account_status from dba_users;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;USERNAME             PASSWORD                       DEFAULT_TABLESPACE    ACCOUNT_STATUS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------- ------------------------------ --------------------- --------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ENTERPRISEDB         md59709ec8c91b5809603a24f09975 pg_default            OPEN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ADAM                 md546d5f32a35e4a038de7d0a7ae3c pg_default            OPEN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SCOTT                md5f5b3b8231a686f681fdee8f66bf pg_default            OPEN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Dropando o usuário/schema ADAM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; drop user adam;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Role dropped.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Criando uma tabela de teste&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; (T1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t1 (a number, b varchar2(10), c date, d clob);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Adicionando uma chave primária à tabela T1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; alter table t1 add constraint pk_t1 primary key (a);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table altered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Verificando a estrutura da tabela T1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; set linesize 80&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; desc t1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Name                          Null?    Data Type&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ----------------------------- -------- ----------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; A                             NOT NULL NUMBER(38)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; B                                      VARCHAR2(10)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; C                                      DATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; D                                      CLOB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Selecionando dados da view USER_CONSTRAINTS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select schema_name,constraint_name,table_name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  from user_constraints&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  where table_name='T1';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SCHEMA_NAME   CONSTRAINT_NAME    TABLE_NAME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------- ------------------ -------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SCOTT         PK_T1              T1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando um procedimento PL/SQL simples&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; set serveroutput on&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    for i in 1..10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3    loop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4     insert into t1 values (i,to_char(sysdate,'mm/yyyy'),sysdate,'teste CLOB');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5     dbms_output.put_line(i);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6    end loop;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8  /&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;10&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EDB-SPL Procedure successfully completed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; commit;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;COMMIT completed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Selecionando registros da tabela T1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from t1 order by a;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         A B          C                             D&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ----------------------------- -----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         5 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         6 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         7 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         8 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         9 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        10 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;10 rows retrieved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a funcionalidade da pseudo-coluna ROWNUM&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; select * from t1 where rownum &lt;=5;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         A B          C                             D&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ----------------------------- ----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         5 07/2009    2009-07-15 10:13:17           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t2 as select * from t1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; insert into t2 values (11,'teste',sysdate,'teste CLOB');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 row INSERTED.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a funcionalidade do operador MINUS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from t2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  minus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  select * from t1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         A B          C                             D&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ----------------------------- ----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        11 teste      2009-07-15 10:20:25           teste CLOB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a funcionalidade da função DECODE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select decode(a,1,'um',2,'dois',3,'tres','outro') from t1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DECODE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;um&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dois&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;tres&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;outro&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;10 rows retrieved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a funcionalidade da função NVL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select nvl(null,0) from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       NVL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a funcionalidade da função NVL2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select nvl2(null,0,1) from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       NVL2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a funcionalidade da função TRANSLATE&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;, apesar do PostgreSQL já ter suporte&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- para a mesma. O SQL abaixo foi executado no pgAdmin III pelo fato de eu ainda não&lt;br /&gt;-- ter &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;conseguido habilitar caracteres especiais no EDB*Plus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select upper (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2          translate( 'Exceção, Única, Rápido',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3                     'ÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜáçéíóúàèìòùâêîôûãõëü',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4                     'ACEIOUAEIOUAEIOUAOEUaceiouaeiouaeiouaoeu'))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5  from   dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;UPPER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXCECAO, UNICA, RAPIDO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; drop table t2;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table dropped.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando a compatibilidade em relação à sequências de banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create sequence seq_doc increment by 1 start with 1 nomaxvalue minvalue 0 nocache;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sequence created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; select seq_doc.nextval from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;             NEXTVAL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                   1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; select seq_doc.nextval from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;             NEXTVAL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                   2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; select seq_doc.currval from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;             CURRVAL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                   2&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Agora irei testar a criação de procedimentos armazenados (stored procedures) pois no PostgreSQL esse conceito, e normalmente esses objetos são criados criados como funções (functions)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t3 (id number);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create or replace procedure sp_insere (p_num number) as&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2    begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3      declare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4         v_num number;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5      begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  6       v_num := p_num;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  7       insert into t3 values (v_num);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  8      end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  9    end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; 10  /&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedure created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; desc sp_insere&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PROCEDURE SP_INSERE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Argument Name                    Type                   In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; -------------------------------- ---------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; P_NUM                            NUMBER                 IN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; exec sp_insere(100);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EDB-SPL Procedure successfully completed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from t3;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       100&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Em relação ao famoso operador &lt;span style="color: rgb(255, 0, 0);"&gt;(+)&lt;/span&gt; do Oracle para construção de junções externas entre tabelas, e, já que o PostgreSQL suporta apenas o padrão &lt;span style="color: rgb(51, 51, 255);"&gt;ANSI LEFT/RIGHT JOIN&lt;/span&gt;, irei abaixo realiar um teste com o operador &lt;span style="color: rgb(255, 0, 0);"&gt;(+)&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t4 (id number);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table t5 (id number);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Table created.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; insert into t4 values (1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 row INSERTED.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; insert into t4 values (2);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 row INSERTED.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; insert into t5 values (1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 row INSERTED.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando SQL join padrão ANSI&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;SQL&gt; select t4.id,t5.id from t4 left outer join t5 on (t4.id = t5.id);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ID         ID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1          1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Testando SQL join padrão Oracle com o sinal (+)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;SQL&gt; select t4.id,t5.id  from t4,t5 where t4.id = t5.id(+);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        ID         ID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1          1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Bom, após a realização de testes de alguns comandos básicos, deparei-me com uma de minhas funções de banco de dados que funciona perfeitamente no Oracle, mas que apresentou problemas ao ser executada no Postgres Plus Advanced Server. Percebi que os procedimentos PL/SQL armazenados no Postgres PAS &lt;span style="font-weight: bold;"&gt;são validados apenas quando os mesmos são executados&lt;/span&gt;. O problema que encontrei está relacionado ao tipo de dado retornado na realização de uma conta matemática como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando o teste no Oracle 10g via SQL*Plus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLE10g&gt; select 2.2*100 VAL from dual;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       VAL  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       220  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando o teste no Postgres PAS via EDB*Plus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select 2.2*100 val from dual;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       VAL  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     220.0  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Portanto, sem entrar em muitos detalhes, a lógica na minha função não espera o resultado com "0" (&lt;span style="color: rgb(255, 0, 0);"&gt;zeros à direita&lt;/span&gt;) e para que seja retornado o mesmo valor retornado pelo Oracle, precisei realizar um &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;CAST&lt;/span&gt; explícito como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select cast(2.2*100 as integer) val from dual;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        VAL  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-----------  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        220  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apenas para ficar bem claro como isso impactou no resultado de retorno da função de banco de dados, abaixo está um trecho da função na qual o resultado precisaria ser exatamente como este:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando no Oracle 10g via SQL*PLUS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLE10g&gt; select lpad(to_char(2.2*100),14,'0') from dual;  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LPAD(TO_CHAR(2  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;00000000000220  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No Postgres Plus Advanced Server o tipo retornado não foi do tipo INTEGER:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando no Postgres PAS via EDB*PLUS  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select lpad(to_char(2.2*100),14,'0') from dual;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LPAD  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;000000000220.0  &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como demonstrado abaixo, precisei realizar explicitamente um &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;CAST&lt;/span&gt; de forma a alterar o tipo de dado retornado para o tipo &lt;span style="font-weight: bold;"&gt;INTEGER&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando no Postgres PAS via EDB*PLUS  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select lpad((cast(2.2*100 as integer)),14,'0') from dual;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LPAD  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;00000000000220  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; exit&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;Disconnected from EnterpriseDB Database.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No mais, ainda precisarei realizar muitos testes, mas acredito que a compatiblidade atual do Postgres Plus Advanced Server com algumas funcionalidades do Oracle ainda irão me surpreender muito ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-3636741588745916883?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/3636741588745916883/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=3636741588745916883' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/3636741588745916883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/3636741588745916883'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/07/testando-algumas-das-compatibilidade-do.html' title='Testando algumas das compatibilidade do Postgres Plus Advanced Server com o Oracle'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0YJ39t-zN8U/Sl3bPhQ7HOI/AAAAAAAAAbc/53IcJEY5r5s/s72-c/database.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-8741061497545846616</id><published>2009-07-08T16:26:00.003-03:00</published><updated>2009-08-14T13:30:56.242-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='osdm'/><category scheme='http://www.blogger.com/atom/ns#' term='desenvolvedor'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle sql developer data modeling'/><title type='text'>Lançada a primeira versão de produção do Oracle SQL Developer Data Modeler</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/SlTzRllzLvI/AAAAAAAAAbU/My_mreYzM2M/s1600-h/data_model.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 64px; height: 65px;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SlTzRllzLvI/AAAAAAAAAbU/My_mreYzM2M/s400/data_model.png" alt="" id="BLOGGER_PHOTO_ID_5356173340324343538" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;A equipe de desenvolvimento de ferramentas da Oracle, recentemente anunciou e disponibilizou para &lt;a href="http://www.oracle.com/technology/products/database/datamodeler/index.html"&gt;download&lt;/a&gt;, a primeira versão de produção do &lt;span style="color: rgb(255, 0, 0);"&gt;Oracle SQL Developer Data Modeler&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;2.0.0.57.0&lt;/span&gt;). Para quem ainda não conhece, o OSDM é uma ferramenta gráfica útil para a construção e modelagem de dados visando facilitar e melhorar a comunicação entre arquitetos e administradores de dados, DBAs, desenvolvedores de aplicações e usuários.&lt;br /&gt;&lt;br /&gt;No mais, para quem teve problemas na utilização das releases anteriores, conforme comentários postados &lt;a href="http://eduardolegatti.blogspot.com/2008/11/lanado-o-oracle-sql-developer-data.html"&gt;no artigo de Novembro de 2008&lt;/a&gt; intitulado de "Lançado o Oracle SQL Developer Data Modeling", vale a pena baixar e conferir esta nova versão.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-8741061497545846616?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/8741061497545846616/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=8741061497545846616' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/8741061497545846616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/8741061497545846616'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/07/lancada-primeira-versao-de-producao-do.html' title='Lançada a primeira versão de produção do Oracle SQL Developer Data Modeler'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0YJ39t-zN8U/SlTzRllzLvI/AAAAAAAAAbU/My_mreYzM2M/s72-c/data_model.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-7637220440263321939</id><published>2009-07-02T13:36:00.003-03:00</published><updated>2009-08-14T13:30:24.798-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='synonym'/><category scheme='http://www.blogger.com/atom/ns#' term='sinônimo'/><category scheme='http://www.blogger.com/atom/ns#' term='odbc'/><category scheme='http://www.blogger.com/atom/ns#' term='unixodbc'/><category scheme='http://www.blogger.com/atom/ns#' term='database link'/><category scheme='http://www.blogger.com/atom/ns#' term='hsodbc'/><category scheme='http://www.blogger.com/atom/ns#' term='dg4odbc'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Abordando o uso de Database Links em conexões heterogêneas. Acessando o PostgreSQL à partir do Oracle ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0YJ39t-zN8U/SkzhKMDAv4I/AAAAAAAAAbM/xSKAj1JsaBk/s1600-h/cable.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 168px; height: 108px;" src="http://3.bp.blogspot.com/_0YJ39t-zN8U/SkzhKMDAv4I/AAAAAAAAAbM/xSKAj1JsaBk/s400/cable.png" alt="" id="BLOGGER_PHOTO_ID_5353901622185475970" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para quem utiliza o serviço heterogêneo de conectividade "heterogeneous services" &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;(hsodbc) para a realização de conexão entre um banco de dados Oracle e um banco de dados não-oracle, perceberá que no Oracle 11g o programa &lt;span style="font-weight: bold;"&gt;hsodbc&lt;/span&gt; foi substituído pelo &lt;span style="font-weight: bold;"&gt;dg4odbc&lt;/span&gt; (&lt;span style="color: rgb(255, 0, 0);"&gt;Database Gateway for ODBC&lt;/span&gt;). Percebi isso quando tentei, para fins de teste, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;"interligar" um banco de dados Oracle 11g à um banco de dados &lt;span style="color: rgb(51, 51, 255);"&gt;PostgreSQL&lt;/span&gt;. Lembro-me de que alguns anos atrás, não tive maiores problemas ao realizar este tipo de conexão entre um Oracle 10g (instalado em um Suse Linux 32 bits) e um banco de dados PostgreSQL 7x. Naquela época fiz uso das bibliotecas genéricas &lt;a href="http://www.unixodbc.org/"&gt;UNIXODBC&lt;/a&gt;. Hoje, utilizando o Oracle 11g em uma plataforma 64 bits, e após ter realizado algumas tentativas mal sucedidas utilizando o &lt;a href="http://www.unixodbc.org/"&gt;UNIXODBC&lt;/a&gt;, acabei apelando por fazer o uso de uma versão para avaliação de &lt;a href="http://www.datadirect.com/"&gt;bibliotecas de terceiros&lt;/a&gt;. No mais, neste artigo, irei demonstrar os passos que realizei para acessar um banco de dados PostgreSQL 8.2.4 através de um objeto (database link) criado à partir do Oracle 11g (11.1.0.7) 64 bits instalado em um Linux CentOS release 5.2.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como eu mencionei o termo (database link), primeiramente irei fazer uma breve apresentação sobre esse objeto:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Um &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083"&gt;database link&lt;/a&gt; (link de banco de dados) é um tipo especial de objeto &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/ds_admin002.htm#ADMIN12150"&gt;criado&lt;/a&gt; em um esquema de banco de dados Oracle que permite o acesso direto a objetos de outro banco de dados, seja ele Oracle (homogêneo) ou não (heterogêneo). &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/SkzgtcEYCYI/AAAAAAAAAbE/PEEWutFvmaY/s1600-h/dblink1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 150px;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SkzgtcEYCYI/AAAAAAAAAbE/PEEWutFvmaY/s400/dblink1.png" alt="" id="BLOGGER_PHOTO_ID_5353901128269957506" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Um &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083"&gt;database link&lt;/a&gt; geralmente é utilizado para suportar conexões utilizadas freqüentemente em bancos de dados remotos. Este objeto, na verdade, especifica o descritor de conexão a ser utilizado em uma conexão e também pode especificar o nome de usuário a ser conectado ao banco de dados remoto. Vale a pena salientar que, no geral, se utiliza links de banco de dados de forma a criar objetos locais (como views ou sinônimos) que acessam bancos de dados remotos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Os &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7001.htm#SQLRF01401"&gt;sinônimos&lt;/a&gt; locais para objetos remotos, fornecem transparência de localização para os usuários locais do banco de dados, ou seja, quando um link de banco de dados é referenciado diretamente ou através de um sinônimo ou uma view, a instrução SQL é enviada e executada em uma nova sessão no banco de dados remoto. Ao ser executada, os dados são retornados para a sessão no banco de dados de origem.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Os links de banco de dados &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/ds_admin002.htm#ADMIN12150"&gt;podem ser criados&lt;/a&gt; como links públicos (por DBA's) tornando os mesmos disponíveis para todos os usuários de banco de dados local ou como links privados. Para a criação deste objeto, se utiliza a sintaxe abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;"&gt;CREATE&lt;/span&gt; [ &lt;span style="font-weight: bold;"&gt;SHARED&lt;/span&gt; ] [ &lt;span style="font-weight: bold;"&gt;PUBLIC&lt;/span&gt; ] &lt;span style="font-weight: bold;"&gt;DATABASE&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;LINK&lt;/span&gt; dblink&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  [ &lt;span style="font-weight: bold;"&gt;CONNECT TO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    { &lt;span style="font-weight: bold;"&gt;CURRENT_USER&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    | user &lt;span style="font-weight: bold;"&gt;IDENTIFIED BY&lt;/span&gt; password [ dblink_authentication ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  | dblink_authentication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    [ &lt;span style="font-weight: bold;"&gt;CONNECT TO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      { &lt;span style="font-weight: bold;"&gt;CURRENT_USER&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      | user &lt;span style="font-weight: bold;"&gt;IDENTIFIED BY&lt;/span&gt; password [ dblink_authentication ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    | dblink_authentication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ]...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  [ &lt;span style="font-weight: bold;"&gt;USING&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;connect_string&lt;/span&gt; ] ;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Por exemplo, o comando abaixo iria criar um link de banco de dados público chamado DBLINK:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create public database link &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;DBLINK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  connect to SCOTT identified by TIGER &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  using '&lt;span style="color: rgb(255, 0, 0);"&gt;DB02&lt;/span&gt;';&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;onde, '&lt;span style="color: rgb(255, 0, 0);"&gt;DB02&lt;/span&gt;' é o nome de serviço de banco dados existente no arquivo &lt;span style="color: rgb(0, 153, 0);"&gt;TNSNAMES.ORA&lt;/span&gt; local do meu servidor Oracle, na qual estão configuradas as informações da localização do servidor de banco de dados remoto.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para utilizar esse database link, bastaria apenas adicioná-lo como &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;sufixo&lt;/span&gt; aos nomes das tabelas como demonstrado na criação da view abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create view emp_remoto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  as &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  select * &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;FROM&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;emp&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;@&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;DBLINK&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  where cod_dept &gt; 10;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Podemos ver no exemplo acima que a cláusula "&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;FROM&lt;/span&gt;" refere-se à &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;EMP&lt;/span&gt;@&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;DBLINK&lt;/span&gt;&lt;/span&gt;, onde, &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;EMP&lt;/span&gt; é a tabela de destino, e &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;DBLINK&lt;/span&gt; o objeto (database link) que contém as informações "&lt;span style="font-style: italic;"&gt;encapsuladas&lt;/span&gt;" das informações do banco de dados de destino.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A propósito, no exemplo anterior foi criada uma &lt;span style="font-weight: bold;"&gt;view&lt;/span&gt; de banco de dados (emp_remoto), com o objetivo de simular uma regra de negócio na qual seria limitado os registros que os usuários poderiam recuperar, mas, se nenhuma restrição desse tipo for necessária, então poderíamos criar um sinônimo público como mostrado pelo comando abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create public synonym &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;emp_remoto&lt;/span&gt; for &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;emp@DBLINK&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Os usuários locais que consultarem o sinônimo público local &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;EMP_REMOTO&lt;/span&gt; terão suas consultas automaticamente redirecionadas à tabela &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;EMP&lt;/span&gt; do banco de dados remoto e, portanto, de forma transparente.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei demonstrar abaixo um exemplo prático na qual criarei um database link em um banco de dados &lt;span style="color: rgb(255, 0, 0);"&gt;Oracle 10g Express Edition&lt;/span&gt; para permitir acesso a um banco de dados &lt;span style="color: rgb(255, 0, 0);"&gt;Oracle 11g&lt;/span&gt; instalado em outro servidor. Observe que passarei a string de conexão diretamente no comando de criação do database link, sem a necessidade de ter definido previamente um serviço &lt;span style="font-weight: bold;"&gt;TNS&lt;/span&gt; de banco de dados, referente à instância Oracle remota  no arquivo local &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;TNSNAMES.ORA&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;oracle@xe-developer:~&gt; &lt;span style="font-weight: bold;"&gt;sqlplus / as sysdba&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 10.2.0.1.0 - Production on Qui Jul 02 08:03:52 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2005, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create database link &lt;span style="color: rgb(255, 0, 0);"&gt;dblink11g&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  connect to &lt;span style="color: rgb(51, 51, 255);"&gt;system&lt;/span&gt; identified by &lt;span style="color: rgb(51, 51, 255);"&gt;minhasenha&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  using '(description = (address = (protocol = tcp)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  4  (host = 11g_production)(port = 1521))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  5  (connect_data = (sid = &lt;span style="color: rgb(0, 153, 0);"&gt;bdprod&lt;/span&gt;)))';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Vínculo de banco de dados criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Selecionando informações do banco de dados local&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select instance_name,host_name from v$instance;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INSTANCE_NAME    HOST_NAME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------------- --------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XE               xe-developer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Selecionando informações do banco de dados remoto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select instance_name,host_name from v$instance@dblink11g;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INSTANCE_NAME    HOST_NAME   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------------- --------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BDPROD           11g_production&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Bom, depois dessa breve introdução ao conceito de Database Links, vamos voltar ao assunto que originou este artigo ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para início, é bom ficar claro que &lt;span style="font-weight: bold;"&gt;na versão 11g do banco de dados Oracle, não será mais possível&lt;/span&gt; executar o utilitário abaixo como nas versões anteriores:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="font-weight: bold;"&gt;hsodbc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Corporation --- QUINTA-FEIRA   JUL 02 2009 08:17:25.104&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Heterogeneous Agent Release 10.2.0.1.0 - Production  Built with&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   Driver for ODBC&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Caso alguma tentativa de acesso ao programa &lt;span style="font-weight: bold;"&gt;hsodbc&lt;/span&gt; seja realizada utilizando o Oracle 11g, o erro abaixo será retornado:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="font-weight: bold;"&gt;hsodbc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;-bash: hsodbc: command not found&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Portanto, deverá ser utilizado o programa &lt;span style="font-weight: bold;"&gt;dg4odbc&lt;/span&gt; que, inclusive, poderá ser instalado e utilizado em versões anteriores ao Oracle 11g conforme a nota &lt;span style="font-weight: bold;"&gt;466228.1&lt;/span&gt; do &lt;a href="http://metalink.oracle.com/"&gt;Oracle Metalink&lt;/a&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;"&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;Starting with 11g Oracle now provides a Database Gateway for ODBC for 32bit Linux operating systems. The difference between the older product (Generic Connectivity or sometimes also called HSODBC) is DG4ODBC is now a stand alone product. It is no longer required to have DG4ODBC running on the same machine as the Oracle database. The gateway is certified also for older Oracle releases 9.2.0.8, 10.1.0.5, or 10.2.0.3. But please be aware those pre-11g Oracle databases require a patch to work properly with V11 Gateways.&lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="font-weight: bold;"&gt;dg4odbc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Corporation --- QUINTA-FEIRA   JUL 02 2009 08:20:35.379&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Heterogeneous Agent Release 11.1.0.7.0 - 64bit Production  Built with&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   Oracle Database Gateway for ODBC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após ter realizado o download das bibliotecas (64 bits) de avaliação do &lt;a href="http://www.datadirect.com/"&gt;site em questão&lt;/a&gt;, irei iniciar a instalação das mesmas:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;[root@Linux tmp]# &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;tar xzvf evlinuxx64.tar.Z&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;autorun.dat&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;install.mi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;unixmi.ksh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lang/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lang/msg.dat&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lang/license.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lang/useng.msg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/makelica&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/makeliclx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/makelicl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/makelich&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/makelicsx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;etc/lic/makelics&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/ICULicense.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/mysqllicense.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/ODBC64FIXES.TXT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/ODBC64README.TXT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/scr1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/teradata.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/mssql.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/oracle.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/sybase.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/mysql.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/oraclewp.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/linuxx.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/greenplum.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/drda.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/postgresql.tar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;linuxx/tarfiles/infcl.tar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@Linux tmp]# &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;ksh unixmi.ksh&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataDirect Technologies Product Setup is preparing....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;English has been set as the installation language.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Log file : /tmp/logfile.9216.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataDirect Technologies Product Setup (DPS)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for UNIX operating systems&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;The following operating system has been detected:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LinuxX64&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Is this the current operating system on your machine (Y/N) ? [&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Y&lt;/span&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;END USER PRODUCT LICENSE AGREEMENT ("AGREEMENT")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataDirect EULA Revised 02/12/2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Enter YES to accept the above agreement : yes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Please enter the following information for proper registration.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In the Key field, enter either EVAL or the Key provided.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Name          :&lt;span style="color: rgb(255, 0, 0);"&gt;EVAL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Company       :&lt;span style="color: rgb(255, 0, 0);"&gt;legatti&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; - evaluation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Serial Number :&lt;span style="color: rgb(255, 0, 0);"&gt;EVAL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Key           :&lt;span style="color: rgb(255, 0, 0);"&gt;EVAL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;You can install drivers for all supported databases or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;install a single driver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Drivers for All Supported Databases includes one driver for each supported database.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In the case of Oracle, DataDirect Connect64 for ODBC 6.0 SP1 has two available drivers&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;that support the database--a wire protocol driver that does not require any database&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;client software to connect to the database, and a client-based driver that does require&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;client software.  By default, the Oracle Wire Protocol driver is installed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Single Driver allows you to choose one from any of the DataDirect Connect64 for &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ODBC 6.0 SP1 drivers, including the client-based Oracle driver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;If you want to evaluate more than one single driver, you will have the opportunity to do&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;so after completion of the initial installation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1.   Drivers for All Supported Databases&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:courier new;" &gt;2.   Single Driver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Please enter an option [1]:&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1.   DB2 Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2.   Greenplum Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;3.   Informix Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;4.   MySQL Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;5.   Microsoft SQL Server Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;6.   Oracle Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:courier new;" &gt;7.   PostgreSQL Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;8.   Sybase Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;9.   Teradata (XE)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;10.  Oracle (client)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Please enter driver option:&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;You have chosen to eval the PostgreSQL Wire Protocol driver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;To change this information, enter C. Otherwise, press Enter to continue. :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;You have chosen to eval the PostgreSQL Wire Protocol driver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;To change this information, enter C. Otherwise, press Enter to continue. :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataDirect Technologies Product Setup is preparing the installation.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Choose a temporary directory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Enter the full path to the temporary install directory.[&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;/tmp&lt;/span&gt;]:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Checking for available space...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;There is enough space.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Extracting files...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Choose a destination directory.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Enter the full path to the install directory.[&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;/opt/Connect64forODBC60&lt;/span&gt;]:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Checking for available space...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;There is enough space.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Extracting files...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Creating license file......&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataDirect Technologies Product Setup successfully removed all of the temporary files.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Thank you for using DataDirect Technologies products.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Installation ended successfully.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Would you like to install another product (Y/N) ? [Y]&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;N&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Thank you for using DataDirect Technologies products.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Installation ended successfully.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após realizada a instalação das bibliotecas, iniciarei a configuração dos arquivos odbc.ini e odbinst.ini como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@Linux /]# &lt;span style="font-weight: bold;"&gt;cd /opt/Connect64forODBC60/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Arquivo odbc.ini&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@Linux Connect64forODBC60]# &lt;span style="color: rgb(255, 0, 0);"&gt;cat odbc.ini&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ODBC Data Sources]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PostgreSQL Wire Protocol=DataDirect 6.0 PostgreSQL Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ODBC]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;IANAAppCodePage=4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;InstallDir=/opt/Connect64forODBC60&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Trace=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TraceFile=odbctrace.out&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TraceDll=/opt/Connect64forODBC60/lib/odbctrac.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[PostgreSQL Wire Protocol]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Driver=/opt/Connect64forODBC60/lib/ddpsql24.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Description=DataDirect 6.0 PostgreSQL Wire Protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ApplicationUsingThreads=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ConnectionReset=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ConnectionRetryCount=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ConnectionRetryDelay=3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Database=bdlegatti&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EnableDescribeParam=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EncryptionMethod=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ExtendedColumnMetadata=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FailoverGranularity=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FailoverMode=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FailoverPreconnect=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FetchRefCursor=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FetchTSWTZasTimestamp=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FetchTWFSasTime=0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;HostName=10.10.10.2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadBalanceTimeout=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadBalancing=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoginTimeout=15&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;LogonID=postgres&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MaxPoolSize=100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MinPoolSize=0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Password=postgres&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Pooling=0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;PortNumber=5432&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;QueryTimeout=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ReportCodepageConversionErrors=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TransactionErrorBehavior=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ValidateServerCertificate=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XMLDescribeType=-10&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Arquivo odbcinst.ini&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@Linux Connect64forODBC60]# &lt;span style="color: rgb(255, 0, 0);"&gt;cat odbcinst.ini&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ODBC Drivers]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DataDirect 6.0 PostgreSQL Wire Protocol=Installed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ODBC Translators]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OEM to ANSI=Installed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[Administrator]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HelpRootDirectory=/opt/Connect64forODBC60/adminhelp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[ODBC]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#This section must contain values for DSN-less connections&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#if no odbc.ini file exists. If an odbc.ini file exists,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#the values from that [ODBC] section are used.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[DataDirect 6.0 PostgreSQL Wire Protocol]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Driver=/opt/Connect64forODBC60/lib/ddpsql24.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Setup=/opt/Connect64forODBC60/lib/ddpsql24.so&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;APILevel=1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ConnectFunctions=YYY&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DriverODBCVer=3.52&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FileUsage=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HelpRootDirectory=/opt/Connect64forODBC60/help&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQLLevel=0&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O próximo passo é configurar os arquivos listener.ora e tnsnames.ora de forma a fazer referência ao serviço de banco de dados que chamarei de &lt;span style="font-weight: bold;"&gt;POSTGRESQL&lt;/span&gt; conforme demonstrado no exemplo abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="font-weight: bold;"&gt;cd $ORACLE_HOME/network/admin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Arquivo listener.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux admin]$ &lt;span style="color: rgb(255, 0, 0);"&gt;cat listener.ora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# listener.ora Network Configuration File: $ORACLE_HOME/network/admin/listener.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Generated by Oracle configuration tools.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SID_LIST_LISTENER =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (SID_LIST =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    (SID_DESC =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (GLOBAL_DBNAME = BD01)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (SID_NAME = BD01)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;    (SID_DESC =&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;      (SID_NAME= POSTGRESQL)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;      (ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;      (PROGRAM=dg4odbc)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;      (ENVS=LD_LIBRARY_PATH = /opt/Connect64forODBC60/lib:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;                              /u01/app/oracle/product/11.1.0/db_1/lib:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;                              /lib:/usr/lib:/etc)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;    )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LISTENER =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (DESCRIPTION_LIST =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    (DESCRIPTION =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (ADDRESS = (PROTOCOL = TCP)(HOST = Linux)(PORT = 1521))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    (DESCRIPTION =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  )&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apenas como observação, caso uma versão anterior do Oracle (10g, 9i ...) esteja sendo utilizada, no trecho do código acima deverá ser substituído a linha onde está &lt;span style="font-weight: bold;"&gt;(PROGRAM=dg4odbc)&lt;/span&gt; para &lt;span style="font-weight: bold;"&gt;(PROGRAM=hsodbc)&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Arquivo tnsnames.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux admin]$ &lt;span style="color: rgb(255, 0, 0);"&gt;cat tnsnames.ora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# tnsnames.ora Network Configuration File: $ORACLE_HOME/network/admin/tnsnames.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Generated by Oracle configuration tools.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;BD01 =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (DESCRIPTION =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    (ADDRESS = (PROTOCOL = TCP)(HOST = Linux)(PORT = 1521))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    (CONNECT_DATA =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (SERVER = DEDICATED)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      (SERVICE_NAME = BD01)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;PG_SERVICE =&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;      (DESCRIPTION=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;        (ADDRESS=(PROTOCOL=tcp)(HOST = Linux)(PORT=1521))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;        (CONNECT_DATA=(SID=POSTGRESQL))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;        (HS=OK)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;      )&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Após definida a configuração dos arquivos listener.ora e tnsnames.ora, irei inicializar o processo &lt;span style="font-weight: bold;"&gt;listener&lt;/span&gt; conforme demonstrado no exemplo abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Inicialização do processo listener&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="color: rgb(255, 0, 0);"&gt;lsnrctl start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LSNRCTL for Linux: Version 11.1.0.7.0 - Production on 02-JUL-2009 09:10:53&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1991, 2008, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Iniciando /u01/app/oracle/product/11.1.0/bd01/bin/tnslsnr: aguarde...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TNSLSNR for Linux: Version 11.1.0.7.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;O arquivo de parâmetros do sistema é $ORACLE_HOME/network/admin/listener.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Atendendo em: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Linux)(PORT=1521)))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Atendendo em: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Estabelecendo conexão com (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Linux)(PORT=1521)))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;STATUS do LISTENER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Apelido              LISTENER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Versão               TNSLSNR for Linux: Version 11.1.0.7.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Data Inicial         02-JUL-2009 09:10:53&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Funcionamento        0 dias 0 hr. 0 min. 0 seg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Nível de Análise     off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Segurança            ON: Local OS Authentication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SNMP                 OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Arq. Parâm. Listn.   /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Resumo de Atendimento...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Linux)(PORT=1521)))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Resumo de Serviços...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;O serviço "BD01" tem 1 instância(s).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Instância "BD01", status UNKNOWN, tem 1 handler(s) para este serviço...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;O serviço "POSTGRESQL" tem 1 instância(s).&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;  Instância "POSTGRESQL", status UNKNOWN, tem 1 handler(s) para este serviço...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;O comando foi executado com êxito&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Afim de evitar quaisquer erros de acesso às bibliotecas ODBC instaladas, ou qualquer outra surpresa, irei atualizar também arquivo de profile do usuário "&lt;span style="font-weight: bold;"&gt;oracle&lt;/span&gt;" com o caminho das bibliotecas ODBC instaladas anteriormente:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="color: rgb(255, 0, 0);"&gt;cat .bash_profile&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# .bash_profile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Get the aliases and functions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if [ -f ~/.bashrc ]; then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        . ~/.bashrc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# User specific environment and startup programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PATH=$PATH:$HOME/bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export PATH&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export TEMP=/tmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export TMPDIR=/tmp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export ORACLE_BASE=/u01/app/oracle&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export ORACLE_SID=BD01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/ctx/bin:&lt;span style="color: rgb(204, 153, 51);"&gt;/opt/Connect64forODBC60/lib&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/lib:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       &lt;span style="color: rgb(204, 153, 51);"&gt;/opt/Connect64forODBC60/lib&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;export NLS_DATE_FORMAT=DD/MM/YYYY&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Agora vem a parte em que criamos o arquivo de configuração para que seja possível a realização da conexão entre o Oracle e o banco de dados remoto (no meu caso, o PostgreSQL). Os programas dg4odbc/hsodbc geralmente procuram por um arquivo &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;init[SID].ora&lt;/span&gt; localizado em &lt;span style="font-weight: bold;"&gt;$ORACLE_HOME/hs/admin&lt;/span&gt;. No meu caso, o &lt;span style="font-weight: bold;"&gt;SID&lt;/span&gt; que utilizei no arquivo listener.ora foi &lt;span style="color: rgb(0, 153, 0);"&gt;POSTGRESQL&lt;/span&gt;, portanto o arquivo a ser criado será &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;initPOSTGRESQL.ora&lt;/span&gt; conforme demonstrado no trecho de código abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux ~]$ &lt;span style="font-weight: bold;"&gt;cd $ORACLE_HOME/hs/admin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oracle@Linux admin]$ &lt;span style="color: rgb(255, 0, 0);"&gt;cat initPOSTGRESQL.ora&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# This is a sample agent init file that contains the HS parameters that are&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# needed for the Database Gateway for ODBC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# HS init parameters&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;HS_FDS_CONNECT_INFO = "PostgreSQL Wire Protocol"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HS_FDS_TRACE_LEVEL = OFF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HS_LANGUAGE = "BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HS_NLS_DATE_FORMAT = "DD/MM/YYYY HH24:MI:SS"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;HS_OPEN_CURSORS = 200&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;HS_FDS_SHAREABLE_NAME = /opt/Connect64forODBC60/lib/libodbc.so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ODBC specific environment variables&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;set ODBCINI=/opt/Connect64forODBC60/odbc.ini&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;set ODBCINSTINI=/opt/Connect64forODBC60/odbcinst.ini&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;set LD_LIBRARY_PATH=&lt;span style="color: rgb(0, 153, 0);"&gt;/opt/Connect64forODBC60/lib&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                    /u01/app/oracle/product/11.1.0/bd01/lib:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                    /lib:/usr/lib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;set PATH=&lt;span style="color: rgb(0, 153, 0);"&gt;/opt/Connect64forODBC60/lib&lt;/span&gt;:/u01/app/oracle/product/11.1.0/bd01/lib:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         /lib:/usr/lib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Environment variables required for the non-Oracle system&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#set [envvar]=[value]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Basicamente, os valores e parâmetros acima mais importantes são: &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;* set ODBCINI define o local onde está localizado o arquivo odbc.ini&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;* &lt;a href="http://download.oracle.com/docs/cd/B28359_01/gateways.111/e10311/apd.htm#BABFFEBG"&gt;HS_FDS_CONNECT_INFO&lt;/a&gt; aponta para o nome da fonte de dados ODBC (DSN).&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;* &lt;a href="http://download.oracle.com/docs/cd/B28359_01/gateways.111/e10311/apd.htm#BABHFDFC"&gt;HS_FDS_SHAREABLE_NAME&lt;/a&gt; aponta para a biblioteca de driver ODBC compartilhada.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Caso algum problema ocorra na tentativa de realizar a conexão com o banco de dados remoto, setando o parâmetro &lt;a href="http://download.oracle.com/docs/cd/B28359_01/gateways.111/e10311/apd.htm#BABFGJBA"&gt;HS_FDS_TRACE_LEVEL&lt;/a&gt; com um valor maior que zero ou (&lt;span style="color: rgb(255, 0, 0);"&gt;ON ou DEBUG&lt;/span&gt;) é que nos permitirá verificar com mais detalhes o que aconteceu de errado. Para maiores informações sobre estes e outros parâmetros, acesse a página &lt;a href="http://download.oracle.com/docs/cd/B28359_01/gateways.111/e10311/apd.htm#BABCICGH"&gt;Oracle Database Gateway for ODBC User's Guide&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Por fim, após realizado todo este trabalho acima, bastará agora, para fins de teste, criar um link de banco de dados privado no meu banco de dados Oracle local que chamarei de "&lt;span style="font-weight: bold;"&gt;pgsql&lt;/span&gt;" para, então, realizar o teste de conexão com o banco de dados remoto. Vale a observação de que eu já criei e populei no banco de dados  remoto (PostgreSQL), uma tabela de teste chamada "&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;emp&lt;/span&gt;" (empregados) com a estrutura a seguir:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;create table emp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    cod smallint NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    data_cadastro date NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    nome varchar(80) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;constraint pk_emp primary key (cod)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;--  Criando o link de banco de dados (database link)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt;sqlplus system/*********&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 11.1.0.6.0 - Production on Qui Jul 02 09:25:44 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create database link &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;pgsql&lt;/span&gt; connect to "&lt;span style="color: rgb(255, 0, 0);"&gt;postgres&lt;/span&gt;" identified by "&lt;span style="color: rgb(255, 0, 0);"&gt;postgres&lt;/span&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  using '&lt;span style="color: rgb(0, 153, 0);"&gt;PG_SERVICE&lt;/span&gt;';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Vínculo de banco de dados criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Realizando o teste de conexão com o PostgreSQL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from "emp"@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       cod data_cadas nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ---------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 25/06/2009 EDUARDO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2 28/06/2009 MARIA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 21/06/2009 ANGELA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 29/06/2009 LAURA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;SQL&gt; delete from "emp"@pg where "cod"=2;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1 linha deletada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; commit;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Commit concluído.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from "emp"@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       cod data_cadas nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ---------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 25/06/2009 EDUARDO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 21/06/2009 ANGELA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 29/06/2009 LAURA&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Em relação ao PostgreSQL, será necessário colocar os nomes das tabelas e colunas entre "&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;aspas duplas&lt;/span&gt;", de forma a acessar os objetos do banco de dados, caso contrário, o erro abaixo será emitido:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from emp@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;select * from emp@pgsql&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;              *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERRO na linha 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-00942: a tabela ou view não existe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;[DataDirect][ODBC PostgreSQL Wire Protocol driver][PostgreSQL]ERROR: relation "EMP" does &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;not exist(File namespace.c;Line 221;Routine RangeVarGetRelid;)[DataDirect][ODBC &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;PostgreSQL Wire Protocol driver][PostgreSQL]Failed transaction. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;The current transaction rolled back.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-02063: precedendo 2 lines a partir de PGSQL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select owner,table_name from all_tables@pgsql where table_name='emp';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OWNER           TABLE_NAME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------- ------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public          emp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; desc "emp"@pgsql&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome                       Nulo?     Tipo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; -------------------------- --------- ----------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; cod                        NOT NULL  NUMBER(5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; data_cadastro              NOT NULL  DATE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; nome                       NOT NULL  VARCHAR2(80)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select nome from "emp"@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;select nome from "emp"@pgsql&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;       *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERRO na linha 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-00904: "NOME": identificador inválido&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select "nome" from "emp"@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EDUARDO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ANGELA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LAURA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create view emp_remoto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  as&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3  select * from "emp"@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;View criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from emp_remoto;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       cod data_cadas nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ---------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 25/06/2009 EDUARDO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 21/06/2009 ANGELA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 29/06/2009 LAURA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create synonym emp for "emp"@pgsql;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sinônimo criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select * from emp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       cod data_cadas nome&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ---------- ---------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 25/06/2009 EDUARDO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 21/06/2009 ANGELA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 29/06/2009 LAURA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; create table "emp2"@pgsql (id integer);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;create table "emp2"@pgsql (id integer)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;                   *&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERRO na linha 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-02021: as operações DDL não são permitidas em um banco de dados remoto&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para concluir, podemos ver acima que o último comando falhou, pelo fato de não ser possível &lt;span style="font-weight: bold;"&gt;qualquer operação DDL&lt;/span&gt; (Data Definition Language) no banco de dados remoto.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-7637220440263321939?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/7637220440263321939/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=7637220440263321939' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7637220440263321939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7637220440263321939'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/07/abordando-o-uso-de-database-links-em.html' title='Abordando o uso de Database Links em conexões heterogêneas. Acessando o PostgreSQL à partir do Oracle ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0YJ39t-zN8U/SkzhKMDAv4I/AAAAAAAAAbM/xSKAj1JsaBk/s72-c/cable.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-7844143642699727726</id><published>2009-06-25T15:30:00.002-03:00</published><updated>2009-08-14T13:30:02.108-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='atribuição'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='função'/><category scheme='http://www.blogger.com/atom/ns#' term='role'/><title type='text'>Atribuição ou Função?</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Apesar de ser um assunto &lt;span style="font-weight: bold; font-style: italic;"&gt;nada relevante &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;no que se refere à administração de banco de dados Oracle, por incrível que pareça o mesmo sempre me intrigou e que, agora, parece que o "&lt;span style="font-style: italic;"&gt;problema&lt;/span&gt;" era simplesmente um erro de tradução do termo "&lt;span style="color: rgb(255, 0, 0);"&gt;role&lt;/span&gt;" na camada de mensagens do &lt;span style="font-weight: bold;"&gt;Oracle Client 10g (release 1) e versões anteriores.&lt;/span&gt; No Oracle client 10g (release 2) e 11g, a tradução da mensagem informativa que aparece após a execução do comandos &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;create role&lt;/span&gt; e &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;drop role&lt;/span&gt; foi devidamente corrigida:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Oracle Client 10g&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; release 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt;sqlplus system/******&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release &lt;span style="color: rgb(51, 51, 255);"&gt;10.1.0.2.0&lt;/span&gt; - Production on Qui Jun 25 13:45:32 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2004, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; create role teste;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Função&lt;/span&gt; criada.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Podemos ver acima a mensagem "&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;Função criada.&lt;/span&gt;", mas eu criei uma &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;atribuição&lt;/span&gt; e não uma &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;função&lt;/span&gt;! Se alterarmos a sessão para utilizar o idioma Inglês, poderemos perceber abaixo a mensagem "&lt;span style="font-style: italic;"&gt;Role dropped.&lt;/span&gt;" e não "&lt;span style="font-style: italic;"&gt;Function dropped&lt;/span&gt;.":&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; alter session set nls_language=american;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Session altered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; drop role teste;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Role&lt;/span&gt; dropped.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; exit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Production With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei agora utilizar o SQL*Plus do Oracle Client 11g release 1 ...&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;-- Oracle Client 11g&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; release 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt;sqlplus system/******&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release &lt;span style="color: rgb(51, 51, 255);"&gt;11.1.0.6.0&lt;/span&gt; - Production on Qui Jun 25 13:47:02 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; create role teste;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Atribuição&lt;/span&gt; criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; drop role teste;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Atribuição&lt;/span&gt; eliminada.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Realizando o teste utilizando o &lt;span style="font-weight: bold;"&gt;SQL*Plus &lt;/span&gt;do &lt;span style="color: rgb(51, 51, 255);"&gt;Oracle 10g (release 2)&lt;/span&gt; diretamente do servidor onde o banco de dados está instalado, o termo "&lt;span style="color: rgb(255, 0, 0);"&gt;Atribuição&lt;/span&gt;" é corretamente mostrado, o que indica que o "&lt;span style="font-style: italic;"&gt;problema&lt;/span&gt;", ao meu ver, estava apenas no Oracle Client do Oracle 10g release 1 e versões anteriores:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;[oracle@linux ~]$ export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;[oracle@linux ~]$ sqlplus / as sysdba&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release &lt;span style="color: rgb(51, 51, 255);"&gt;10.2.0.4.0&lt;/span&gt; - Production on Qui Jun 25 15:13:07 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; create role teste;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Atribuição&lt;/span&gt; criada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; drop role teste;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Atribuição&lt;/span&gt; eliminada.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-7844143642699727726?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/7844143642699727726/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=7844143642699727726' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7844143642699727726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7844143642699727726'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/06/atribuicao-ou-funcao.html' title='Atribuição ou Função?'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-7415399930385299923</id><published>2009-06-17T10:48:00.004-03:00</published><updated>2009-08-14T13:29:16.472-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dbca'/><category scheme='http://www.blogger.com/atom/ns#' term='dba_users_with_defpwd'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle 11g'/><category scheme='http://www.blogger.com/atom/ns#' term='sec_case_sensitive_logon'/><category scheme='http://www.blogger.com/atom/ns#' term='ignorecase'/><category scheme='http://www.blogger.com/atom/ns#' term='case-sensitive'/><category scheme='http://www.blogger.com/atom/ns#' term='senha'/><category scheme='http://www.blogger.com/atom/ns#' term='password_versions'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><title type='text'>Definição de senhas case-sensitive no Oracle 11g ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para quem está planejando migrar o seu atual banco de dados Oracle para a mais recente versão Oracle 11g, ao utilizar o &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;DBCA&lt;/span&gt; (Database Configuration Assistant), irá se deparar com uma nova tela de configuração intitulada de &lt;span style="color: rgb(51, 51, 255);"&gt;"Definições de Segurança"&lt;/span&gt;. O objetivo desta tela é configurar, além de algumas definições padrão de auditoria, um novo perfil de senhas como mostrado na figura abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0YJ39t-zN8U/Sjj0ug9ji3I/AAAAAAAAAa8/cQTkcGNFL8w/s1600-h/segoracle11g.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 284px;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/Sjj0ug9ji3I/AAAAAAAAAa8/cQTkcGNFL8w/s400/segoracle11g.png" alt="" id="BLOGGER_PHOTO_ID_5348293637461740402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;As configurações de segurança padrão ativam a auditoria para muitos privilégios de sistemas diferentes, como &lt;span style="font-style: italic;"&gt;create session&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;create user&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;drop user&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;create any procedure&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;alter system&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;alter database&lt;/span&gt;, entre outras, de forma a seguir algumas exigências normativas definidas na legislação americana &lt;a href="http://pt.wikipedia.org/wiki/Lei_Sarbanes-Oxley"&gt;Sarbanes-Oxley (SOX)&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O objetivo deste artigo é demonstrar a nova funcionalidade de senhas case-sensitive do Oracle 11g que, até então, eram case-insensitive, ou seja, &lt;span style="font-weight: bold;"&gt;no Oracle 11g existe a diferenciação entre letras maiúsculas e minúsculas na definição de uma senha de usuário de banco de dados&lt;/span&gt;. Por exemplo: Nas versões anteriores ao Oracle 11g, caso criássemos um usuário de banco de dados &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;SCOTT&lt;/span&gt; e definíssemos sua senha para &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;TIGER&lt;/span&gt;, poderíamos então nos conectar no banco de dados através deste usuário digitando a senha &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;TIGER&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Tiger&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;tiger&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;TiGer&lt;/span&gt; ou &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;tiGER&lt;/span&gt;, sem qualquer distinção entre letras maiúsculas e minúsculas.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Agora no Oracle 11g, ao escolher a primeira opção conforme mostrado na figura acima, o banco de dados fará distinção entre letras maiúsculas e minúsculas ao entrar com a senha do usuário. No exemplo anterior, a senha do usuário &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;SCOTT&lt;/span&gt; foi definida como &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;TIGER&lt;/span&gt; (todas em maiúsculas), portanto, a conexão com o banco de dados só será bem sucedida caso a senha seja fornecida seja &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;TIGER&lt;/span&gt;, não mais &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Tiger&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;tiger&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;TiGer&lt;/span&gt; ou &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;tiGER&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Podemos ver abaixo o novo parâmetro de inicialização responsável por implementar este novo perfil de senhas case-sensitives no Oracle 11g:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; show parameter sec_case_sensitive_logon&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NAME                                 TYPE        VALUE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------------------ ----------- --------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sec_case_sensitive_logon             boolean     &lt;span style="color: rgb(0, 153, 0);"&gt;TRUE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como demonstrado acima, o parâmetro &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/initparams.htm#REFRN10299"&gt;SEC_CASE_SENSITIVE_LOGON&lt;/a&gt; está atualmente configurado como &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;TRUE&lt;/span&gt;, ou seja, para realizar uma conexão bem sucedida no banco de dados, um usuário deverá fornecer a senha exatamente como foi definida durante a criação do usuário (diferenciando maiúsculas e minúsculas), isso supondo que a mesma tenha sido definida já no próprio Oracle 11g. Vamos então a um exemplo prático:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt;sqlplus / as sysdba&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL*Plus: Release 11.1.0.6.0 - Production on Qua Jun 17 09:32:49 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SYS&gt; create user &lt;span style="color: rgb(51, 51, 255);"&gt;scott&lt;/span&gt; identified by &lt;span style="color: rgb(255, 0, 0);"&gt;tiger&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário criado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; grant connect to scott;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Concessão bem-sucedida.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;SYS&gt; connect scott/TIGER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERROR:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-01017: senha/nome do usuário inválido; log-on negado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;Advertência: Você não está mais conectado ao ORACLE.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;@&gt; connect scott/Tiger&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERROR:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-01017: senha/nome do usuário inválido; log-on negado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;@&gt; connect scott/TiGer&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERROR:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-01017: senha/nome do usuário inválido; log-on negado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;@&gt; connect scott/tiGER&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ERROR:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 153, 51);font-family:courier new;" &gt;ORA-01017: senha/nome do usuário inválido; log-on negado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;@&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;connect&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;scott&lt;/span&gt;/&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;tiger&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;Conectado.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;De acordo com a demonstração acima, podemos perceber que o usuário &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;SCOTT&lt;/span&gt; só conseguiu se logar no banco de dados quando a senha &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;"tiger"&lt;/span&gt; (todas em minúsculas) foi fornecida. Ao consultarmos a view de dicionário de dados &lt;span style="font-weight: bold;"&gt;DBA_USERS&lt;/span&gt;, poderemos perceber duas mudanças significativas:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select username, password, password_versions from dba_users;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;USERNAME              PASSWORD                 PASSWORD_VERSIONS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------- ------------------------ -----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MGMT_VIEW                                      10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS                                            10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYSTEM                                         10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DBSNMP                                         10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYSMAN                                         10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-family:courier new;" &gt;SCOTT                                          10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OUTLN                                          10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ANONYMOUS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;WMSYS                                          10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XDB                                            10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DIP                                            10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLE_OC                                      10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TSMSYS                                         10G 11G&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XS$NULL                                        10G 11G&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;14 linhas selecionadas.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;A primeira mudança que podemos notar é que a informação do valor hash da senha na coluna &lt;span style="font-weight: bold;"&gt;PASSWORD&lt;/span&gt; não é mais mostrada como nas versões anteriores do Oracle, portanto, a mesma &lt;span style="font-weight: bold;"&gt;foi omitida&lt;/span&gt; no Oracle 11g, mas nada nos impede visualizar o seu valor hash na tabela base de dicionário de dados &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;SYS.USER$&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select name,password from sys.user$ where name='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;NAME                       PASSWORD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------------- ------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SCOTT                      F894844C34402B67&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Vale a pena salientar que o novo valor hash gerado pela senha case-sensitive é armazenada na coluna &lt;span style="font-weight: bold;"&gt;SPARE4&lt;/span&gt; da tabela base &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;SYS.USER$&lt;/span&gt; do dicionário de dados. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Uma outra mudança perceptível na view de dicionário de dados &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;DBA_USERS&lt;/span&gt; foi adição de uma nova coluna chamada &lt;span style="font-weight: bold;"&gt;PASSWORD_VERSIONS&lt;/span&gt; que indica em qual versão do Oracle a senha do usuário foi criada. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O valor &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;"10g 11g"&lt;/span&gt; significa que a senha em questão possui informações hash tanto na coluna PASSWORD quanto na coluna SPARE4 da tabela base &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;SYS.USER$&lt;/span&gt;, e que a mesma pode ou não ser case-sensitive (Isso vai depender se o parâmetro SEC_CASE_SENSITIVE_LOGON está ativado ou não). &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O valor &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;"10g"&lt;/span&gt; significa que somente a coluna PASSWORD possui a informação hash da senha do usuário, indicando que independente do parâmetro SEC_CASE_SENSITIVE_LOGON estar ativado ou não, a senha deste usuário vai ser case-insensitive até que a mesma seja alterada. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O valor &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;"11g"&lt;/span&gt; indica que somente a coluna SPARE4 possui a informação hash da senha do usuário, indicando que a mesma é case-sensitive, portanto, o usuário conseguirá se conectar no banco de dados apenas quando o parâmetro SEC_CASE_SENSITIVE_LOGON estiver configurado com o valor &lt;span style="font-weight: bold;"&gt;TRUE&lt;/span&gt; (ativado). Abaixo irei realizar uma pequena demonstração:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SYS&gt; alter user scott identified by TIGER;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário alterado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select password,spare4 from user$ where name='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PASSWORD                   SPARE4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------------- --------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;F894844C34402B67           S:2CA14104071F06830C95527377C53B0DBF0349DE1B7BF4238EA663C806FD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select password_versions from dba_users where username='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PASSWORD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;10G 11G&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SYS&gt; alter user scott identified by values 'F894844C34402B67';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário alterado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select password,spare4 from user$ where name='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PASSWORD                   SPARE4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------------- ----------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;F894844C34402B67&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select password_versions from dba_users where username='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PASSWORD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;10G&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SYS&gt; alter user scott identified &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;  2  by values 'S:2CA14104071F06830C95527377C53B0DBF0349DE1B7BF4238EA663C806FD';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Usuário alterado.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select password,spare4 from user$ where name='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PASSWORD                   SPARE4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------------------- --------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                           S:2CA14104071F06830C95527377C53B0DBF0349DE1B7BF4238EA663C806FD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select password_versions from dba_users where username='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PASSWORD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);font-family:courier new;" &gt;11G&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Em resumo, quando se define uma nova senha de usuário utilizando o Oracle 11g, a mesma &lt;span style="font-weight: bold;"&gt;irá atualizar os valores hash nas colunas &lt;span style="color: rgb(255, 0, 0);"&gt;PASSWORD&lt;/span&gt; e &lt;span style="color: rgb(255, 0, 0);"&gt;SPARE4&lt;/span&gt; independente do parâmetro &lt;span style="color: rgb(51, 51, 255);"&gt;SEC_CASE_SENSITIVE_LOGON&lt;/span&gt; estiver ativado ou não&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Portanto, quando migramos usuários de versões Oracle anteriores (8i, 9i, 10g) para o Oracle 11g, seja utilizando uma importação &lt;span style="font-weight: bold;"&gt;FULL&lt;/span&gt; com o tradicional utilitário de importação (imp), ou usando o utilitário Import Datapump (impdp), nas quais as senhas dos usuários são case-insensitives, &lt;span style="font-weight: bold;"&gt;as senhas desses usuários continuarão case-insensitives, independente do parâmetro &lt;span style="color: rgb(51, 51, 255);"&gt;SEC_CASE_SENSITIVE_LOGON&lt;/span&gt; estar ativado ou não&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No caso de usuários com privilégios &lt;span style="font-weight: bold;"&gt;SYSDBA&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;SYSOPER&lt;/span&gt;, um outro parâmetro foi adicionado ao utilitário &lt;span style="font-weight: bold;"&gt;orapwd&lt;/span&gt; de forma a controlar senhas case-sensitives no arquivo de senhas:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;$ orapwd file=orapwBD01 entries=5 &lt;span style="color: rgb(255, 0, 0);"&gt;ignorecase&lt;/span&gt;=y password=&lt;span style="color: rgb(0, 153, 0);"&gt;minha_senha&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O parâmetro &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;ignorecase&lt;/span&gt;, demonstrado no comando acima, pode ter o valor &lt;span style="color: rgb(51, 51, 255);"&gt;"n"&lt;/span&gt; (default), informando que as senhas serão tratadas como case-sensitives, ou &lt;span style="color: rgb(51, 51, 255);"&gt;"y"&lt;/span&gt; informando que as senhas serão tratadas como case-insensitives.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para finalizar, e aproveitando o assunto de segurança de acesso e senhas de usuários, agora no Oracle 11g foi também disponibilizada uma view de dicionário de dados &lt;a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/statviews_5.htm#REFRN23725"&gt;DBA_USERS_WITH_DEFPWD&lt;/a&gt; que ajuda o DBA a identificar quais usuários possuem a senha padrão "default" desde a criação do banco de dados, de forma que as mesmas possam ser alteradas quando possível:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SYS&gt; select * from dba_users_with_defpwd;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;USERNAME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DIP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XS$NULL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TSMSYS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OUTLN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;EXFSYS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLE_OCM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XDB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;WMSYS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;8 linhas selecionadas.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-7415399930385299923?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/7415399930385299923/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=7415399930385299923' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7415399930385299923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7415399930385299923'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/06/definicao-de-senhas-case-sensitive-no.html' title='Definição de senhas case-sensitive no Oracle 11g ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0YJ39t-zN8U/Sjj0ug9ji3I/AAAAAAAAAa8/cQTkcGNFL8w/s72-c/segoracle11g.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-4964992175186897271</id><published>2009-06-07T13:23:00.008-03:00</published><updated>2009-08-14T13:28:30.996-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mercado'/><category scheme='http://www.blogger.com/atom/ns#' term='oca'/><category scheme='http://www.blogger.com/atom/ns#' term='carreira'/><category scheme='http://www.blogger.com/atom/ns#' term='exame'/><category scheme='http://www.blogger.com/atom/ns#' term='certificação'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='ocp'/><title type='text'>Este mercado é promissor? Vale a pena a certificação?</title><content type='html'>&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Recebi de um leitor uma questão relacionada ao mercado de banco de dados e certificações Oracle, e resolvi então publicar aqui de forma a compartilhar e expor o meu humilde ponto de vista.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Olá Eduardo Legatti,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-style: italic;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;primeiramente quero parabenizar pelo blog, sendo uma ótima fonte de estudos, cheguei até ele através do google, quando procurava informações sobre certificação Oracle OCA.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-style: italic;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Estou começando meus estudos na área, faço Análise e Desenvolvimento de Sistemas e ao estudar pela primeira vez Banco de Dados, tive uma enorme vontade de me especializar em algum banco específico, pesquisando pela web percebi que é uma boa estudar Oracle, desde então venho buscando fontes de estudo.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-style: italic;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Até mais.. e mais uma vez parabéns.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;font-family:courier new;font-size:85%;"  &gt;ps: ao seu ver, esse mercado é promissor, vale a pena a certificação?&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Primeiramente, obrigado pelo comentário. Realmente acho que o mercado de banco de dados, seja ele Oracle, MS SQL Server, DB2, etc.. é promissor.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Na minha visão, o mercado de trabalho para um DBA é a mesma para qualquer outra área de tecnologia. Tudo depende da demanda do mercado. Por exemplo, às vezes acontece de empresas estarem muito precisando de um profissional trainee para trabalhar com administração de banco de dados Oracle e/ou MS SQL Server. Também, não é raro existirem muitas demandas de profissionais que tenham conhecimentos básicos em DB2 da IBM, ou PostgreSQL ou MySQL, ou Oracle para cargo de trainee. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Acredito que para entrar nesta área, o profissional necessitará ter o conhecimento mínimo básico para iniciar um trabalho de trainee ou DBA Júnior.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olha, tem muita gente que tira certificação sem qualquer experiência na área achando que com isso irá conseguir um emprego rápido. Na verdade, a certificação vai dar uma maior visibilidade no currículo e chamar a atenção de quem está recrutando. Isso mostra que um profissional certificado tem mais oportunidades de quem não tem certificação. Quem tira certificação em uma determinada tecnologia, na verdade, está assinando que é um "expert" na mesma, ou seja, a certificação ajudou o profissional a ser chamado para uma entrevista. Agora, se nessa entrevista, o mesmo não demonstrar nenhuma experiência e/ou habilidades necessárias para ocupar o cargo, então pode ter certeza de que o mesmo não será contratado. Infelizmente ou felizmente, é o mercado quem dita as regras, portanto, é necessário que estejamos sempre preparados. No mais, com certeza vale a pena a &lt;a href="http://eduardolegatti.blogspot.com/2007/10/certificao-oracle-ocaocp-ocm.html"&gt;certificação&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Em relação às fontes de estudo, quando eu estava estudando para tirar a certificação OCA/OCP 9i, eu estava estudando pelos manuais oficiais de quando eu fiz os cursos do Oracle 9i. Eu também tinha comprado os livros "OCA/OCP Introdução ao Oracle 9i SQL (1Z0-007)" e  "OCA/OCP Oracle9i Database Fundamentos I (1Z0-031)" ambos da Oracle Press - Autor Jason Couchman. Posteriormente, quando estava estudando para atualizar a minha certificação OCP 9i para OCP 10g, passei mais tempo praticando no próprio banco de dados Oracle 10g e lendo mais a documentação oficial.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Agora, se você está estudando para tirar a certificação do Oracle 10g ou 11g (Recomendo o 11g), então eu sempre indico os manuais da &lt;a href="http://www.sybex.com/"&gt;SYBEX&lt;/a&gt; porque eles abordam todos os tópicos que caem nos exames. Outra coisa que também acho importante é a de praticar nos simulados da &lt;a href="http://www.selftestsoftware.com/"&gt;SelfTest&lt;/a&gt; ou &lt;a href="http://www.transcender.com/"&gt;Transcender&lt;/a&gt;. Caso você consiga algum material (no Google), os mesmos serão muito úteis para o seu aprendizado.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Aproveitando a sua questão, e já que você está cursando "Análise e Desenvolvimento de Sistemas", vou comentar um pouco de perfis de DBA's. Bom, acredito que existam no mínimo 2 tipos de DBA's hoje no mercado.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O tipo 1 seria aquele DBA que trabalha no servidor de produção, realizando manutenções necessárias de tuning, sugerindo ajustes de memória e I/O quando necessários, fazendo realocações de arquivos de banco de dados, criando e executando  políticas de backup/recovery, realizando aplicações de patches e correções críticas, entre outras, sem ter uma noção clara de como os SQL’s foram codificados nas aplicações de terceiros que são executadas no servidor.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;O outro tipo de DBA (tipo 2) que é mais o meu caso, é aquele voltado para o desenvolvimento de aplicações na qual, é de fundamental importância, o conhecimento das regras de negócios em questão, de forma a fornecer a melhor solução de banco de dados para um determinado tipo de problema, além de possuir conhecimentos sólidos de modelagem de dados, ser apto a sugerir a criação de um padrão de nomenclatura de objetos de banco de dados e, conseqüentemente, ser apto de fiscalizar e garantir o uso desse padrão pelos analistas de sistemas e desenvolvedores. Outra tarefa seria a criação de uma política de melhores práticas de construções de instruções SQL, realização de análise de performance dos SQL’s construídos de forma a capturar o melhor plano de acesso aos registros e, assim, realizar os ajustes necessários avaliando a necessidade de criação de índices (btree/bitmap), views materializadas, tabelas/índices particionados, etc…&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Em resumo, o trabalho do DBA tipo 2 seria mais de prover suporte à equipe de desenvolvimento, garantindo asimm a qualidade das aplicações desenvolvidas no que se refere ao modelo de dados e acesso ao banco de dados.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Fazendo uma comparação, acredito que um bom trabalho realizado pelo DBA tipo 2 facilitaria muito, em parte, o trabalho realizado pelo DBA tipo 1.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;Boa sorte e até mais ...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-4964992175186897271?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/4964992175186897271/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=4964992175186897271' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4964992175186897271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4964992175186897271'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/06/este-mercado-e-promissor-vale-pena.html' title='Este mercado é promissor? Vale a pena a certificação?'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-4946674339993152947</id><published>2009-06-04T09:55:00.010-03:00</published><updated>2009-08-14T13:28:04.695-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modelagem de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='desenvolvedor'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><title type='text'>Dúvidas sobre modelagem de dados ...</title><content type='html'>&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Recentemente recebi de um colega, uma dúvida sobre modelagem de dados e resolvi então compartilhar aqui.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Cenário:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Possuo um cadastro de clientes que usam o serviço de hospedagem de sites, e um outro cadastro que utiliza o serviço de registro de domínios. A grande questão é como representar isso, os casos são os seguintes:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;ul  style="text-align: justify;font-family:courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Um cliente pode ter somente o serviço de hospedagem de sites, logo, todos os seus dados estariam na tabela de hospedagem. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul  style="text-align: justify;font-family:courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Um cliente pode ter somente o serviço de registro de domínios, logo, todos os seus dados estariam na tabela de registro de domínios.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul  style="text-align: justify;font-family:courier new;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Um cliente pode ter ambos os serviços, logo, teria dados nas 2 tabelas, mas, esses dados poderiam ser os mesmos, como também não poderiam.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Detalhe: Essa estrutura precisaria ser preparada para num futuro próximo aumentar os serviços, ou seja, além de hospedagem e domínios, possuir outros, loja virtual, etc.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Enfim, imaginei uma terceira tabela para controlar isso, mandei um esboço em anexo mas estou receoso devido ao fato de com isso existirem muitas chaves estrangeiras nulas e a aplicação precisaria descobrir em qual tabela estariam os dados do cliente.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/06/duvidas-sobre-modelagem-de-dados.html" target="_blank" onclick="window.open('http://3.bp.blogspot.com/_0YJ39t-zN8U/Sie_7MItHuI/AAAAAAAAAaM/9fXeml8yiYc/s1600-h/original.png','oracle','scrollbars=yes,menubar=no,width=720,height=400,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_0YJ39t-zN8U/Sie_7MItHuI/AAAAAAAAAaM/9fXeml8yiYc/s400/original.png" alt="" id="BLOGGER_PHOTO_ID_5343450506489306850" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Solução:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Bem, em relação ao último parágrafo do texto acima, posso dizer que &lt;span style="font-weight: bold;"&gt;chaves estrangeiras nulas não são problema algum&lt;/span&gt;. Imagine que eu tenha uma tabela de clientes onde a mesma possua uma coluna (&lt;span style="color: rgb(51, 51, 255);"&gt;id_servico&lt;/span&gt;) que armazene códigos de serviços, e que a mesma referencie a tabela de serviços.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Se pode haver clientes que não prestam nenhum serviço, então poderiam existir vários clientes onde a coluna &lt;span style="color: rgb(51, 51, 255);"&gt;id_serviço&lt;/span&gt; estaria &lt;span style="font-weight: bold;"&gt;NULA&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 153, 51);"&gt;Não se pode confundir chave estrangeira com chave primária. Chave primária é obrigatória, mas chave estrangeira pode ou não ser obrigatória e isso vai depender da regra de negócio em questão&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Voltando ao cenário proposto, isso está me parecendo um relacionamento simples onde "Um Cliente pode prestar vários serviços" e "Um serviço pode ser prestado por vários clientes".&lt;br /&gt;&lt;br /&gt;Se você quer uma estrutura flexível e, já pensando em um futuro próximo, permitir o registro de mais serviços, então &lt;span style="font-weight: bold;"&gt;criar tabelas específicas para armazenar cada serviço seria praticamente inviável e sem sentido&lt;/span&gt;. Acredito que com apenas 3 tabelas o seu problema seria solucionado, mas para complicar um pouco avalie se uma quarta tabela seria útil para você. Então, neste caso, avalie a solução abaixo:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;1) criar uma tabela de clientes&lt;br /&gt;2) criar uma tabela de serviços&lt;br /&gt;3) criar uma tabela que armazenará os serviços que cada cliente poderá prestar&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;4) criar uma tabela com colunas adicionais que registrará todos os serviços de todos os clientes&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://eduardolegatti.blogspot.com/2009/06/duvidas-sobre-modelagem-de-dados.html" target="_blank" onclick="window.open('http://4.bp.blogspot.com/_0YJ39t-zN8U/SifAMD2CTMI/AAAAAAAAAaU/ctMPqYStFbY/s1600-h/sugerido.png','oracle','scrollbars=yes,menubar=no,width=720,height=440,resizable=yes,toolbar=no,location=no,status=no,screenX=100,screenY=100,left=100,top=80');return false;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_0YJ39t-zN8U/SifAMD2CTMI/AAAAAAAAAaU/ctMPqYStFbY/s400/sugerido.png" alt="" id="BLOGGER_PHOTO_ID_5343450796321295554" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Portanto, tome como exemplo os dados abaixo de acordo com o modelo acima proposto:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;=======&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;CLIENTE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;=======&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ID_CLIENTE NOME_CLIENTE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 Cliente A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2 Cliente B&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 Cliente C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;=======&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SERVICO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;=======&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ID_SERVICO NOME_SERVICO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- -------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1 Hospedagem de sites &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2 Registro de domínio&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3 Loja Virtual&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4 Outro, etc...&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Abaixo irei definir quais serviços cada cliente poderá prestar:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;===============&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;CLIENTE_SERVICO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;===============&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ID_CLIENTE ID_SERVICO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ----------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1          1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         1          2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         2          3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         3          2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         4          1&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Para finalizar, a tabela &lt;span style="color: rgb(0, 153, 0);"&gt;REGISTRO&lt;/span&gt; abaixo armazenaria todos os serviços de todos os clientes sendo que a coluna &lt;span style="color: rgb(51, 51, 255);"&gt;ID_REGISTRO&lt;/span&gt; seria um seqüencial.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;========&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;REGISTRO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;========&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ID_REGISTRO ID_CLIENTE ID_SERVICO ENDERECO_WEB ETC...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;----------- ---------- ---------- ------------ ------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          1          1          1 http:// .... ... &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          2          1          2 http:// .... ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          3          2          3 http:// .... ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          4          3          2 http:// .... ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          5          4          1 http:// .... ...&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como você viu acima, a tabela &lt;span style="color: rgb(0, 153, 0);"&gt;REGISTRO&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;a princípio, parece ser redundante no modelo&lt;/span&gt; pois faz o mesmo papel da tabela &lt;span style="color: rgb(0, 153, 0);"&gt;CLIENTE_SERVICO&lt;/span&gt; mas, neste caso, você poderia armazenar mais registros do mesmo serviço para o mesmo cliente. Por outro lado, bastaria também &lt;span style="font-weight: bold;"&gt;fazer um relacionamento não identificado&lt;/span&gt; na tabela &lt;span style="color: rgb(0, 153, 0);"&gt;CLIENTE_SERVICO&lt;/span&gt; onde as colunas &lt;span style="color: rgb(51, 51, 255);"&gt;ID_CLIENTE&lt;/span&gt; e &lt;span style="color: rgb(51, 51, 255);"&gt;ID_SERVICO&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;seriam apenas chaves estrangeiras, e não chaves primárias&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Dependendo do caso, você poderá trabalhar somente com a tabela &lt;span style="color: rgb(0, 153, 0);"&gt;CLIENTE_SERVICO&lt;/span&gt; deixando a tabela &lt;span style="color: rgb(0, 153, 0);"&gt;REGISTRO&lt;/span&gt; fora do modelo, ou seja, a tabela &lt;span style="color: rgb(0, 153, 0);"&gt;REGISTRO&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;seria opcional&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;No mais, isso realmente vai depender das regras de negócios envolvidas na sua aplicação de forma a atingir os requisitos necessários.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Enfim, de acordo com o modelo e na minha visão, a tabela &lt;span style="color: rgb(0, 153, 0);"&gt;CLIENTE_SERVICO&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;teria apenas o papel de armazenar de forma &lt;span style="color: rgb(255, 0, 0);"&gt;parametrizável&lt;/span&gt; o que cada cliente poderia fornecer&lt;/span&gt;, obedecendo assim, o requisito na qual você diz que "Um cliente poderá ter somente o serviço X ou Y ou ambos ..."&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-4946674339993152947?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/4946674339993152947/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=4946674339993152947' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4946674339993152947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/4946674339993152947'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/06/duvidas-sobre-modelagem-de-dados.html' title='Dúvidas sobre modelagem de dados ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0YJ39t-zN8U/Sie_7MItHuI/AAAAAAAAAaM/9fXeml8yiYc/s72-c/original.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-7642266306572083019</id><published>2009-05-13T11:40:00.005-03:00</published><updated>2009-08-14T13:27:30.393-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='desenvolvedor'/><category scheme='http://www.blogger.com/atom/ns#' term='dbms_application_info'/><category scheme='http://www.blogger.com/atom/ns#' term='sys_context'/><category scheme='http://www.blogger.com/atom/ns#' term='set_module'/><category scheme='http://www.blogger.com/atom/ns#' term='set_client_info'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Um pouco do pacote DBMS_APPLICATION_INFO ...</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Acredito que este artigo esteja mais direcionado para desenvolvedores de aplicações que fazem uso do banco de dados Oracle. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:courier new;font-size:85%;"  &gt;Problema:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Disponibilizar informações no Oracle, em tempo real, do que está sendo realizado por cada usuário de um sistema. Se um usuário acessar o banco de dado através de uma aplicação, deverá estar disponível para visualização, alguma informação que identifique o quê cada sessão está executando dentro da aplicação.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:courier new;font-size:85%;"  &gt;Solução:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Sabemos que a view dinâmica de desempenho &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;V$SESSION&lt;/span&gt; nos oferece algumas informações das sessões que estão atualmente conectadas no banco de dados Oracle. Portanto, para resolver o problema acima, poderemos fazer o uso da view V$SESSION de forma a popular algumas colunas como &lt;span style="color: rgb(0, 153, 0);"&gt;MODULE&lt;/span&gt;, &lt;span style="color: rgb(0, 153, 0);"&gt;ACTION&lt;/span&gt; e &lt;span style="color: rgb(0, 153, 0);"&gt;CLIENT_INFO&lt;/span&gt; como demonstrarei mais abaixo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei utilizar o pacote chamado &lt;a href="http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_appinf.htm#CHEEFBBD"&gt;DBMS_APPLICATION_INFO&lt;/a&gt; diponível no Oracle, na qual farei uso das procedures &lt;span style="color: rgb(51, 51, 255);"&gt;SET_MODULE&lt;/span&gt; e &lt;span style="color: rgb(51, 51, 255);"&gt;SET_CLIENT_INFO&lt;/span&gt; como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;SQL&gt; desc DBMS_APPLICATION_INFO;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PROCEDURE READ_CLIENT_INFO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome do Argumento              Tipo                    In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------------ ----------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; CLIENT_INFO                    VARCHAR2                OUT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PROCEDURE READ_MODULE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome do Argumento              Tipo                    In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------------ ----------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; MODULE_NAME                    VARCHAR2                OUT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ACTION_NAME                    VARCHAR2                OUT&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;&lt;/span&gt;PROCEDURE SET_ACTION&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome do Argumento              Tipo                    In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------------ ----------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ACTION_NAME                    VARCHAR2                IN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;PROCEDURE SET_CLIENT_INFO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome do Argumento              Tipo                    In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------------ ----------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; CLIENT_INFO                    VARCHAR2                IN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;PROCEDURE SET_MODULE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome do Argumento              Tipo                    In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------------ ----------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; MODULE_NAME                    VARCHAR2                IN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ACTION_NAME                    VARCHAR2                IN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PROCEDURE SET_SESSION_LONGOPS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; Nome do Argumento              Tipo                    In/Out Default?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; ------------------------------ ----------------------- ------ --------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; RINDEX                         BINARY_INTEGER          IN/OUT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SLNO                           BINARY_INTEGER          IN/OUT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; OP_NAME                        VARCHAR2                IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; TARGET                         BINARY_INTEGER          IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; CONTEXT                        BINARY_INTEGER          IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; SOFAR                          NUMBER                  IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; TOTALWORK                      NUMBER                  IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; TARGET_DESC                    VARCHAR2                IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; UNITS                          VARCHAR2                IN     DEFAULT&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Imagine que estamos desenvolvendo um sistema de Controle de Estoque. Agora imagine um relatório fornecido pelo sistema que consolida as entradas e saídas de todos os materiais de um almoxarifado e que esse relatório possa ou não levar um tempo considerável para ser executado. Se quisermos visualizar no banco de dados através da view &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;V$SESSION&lt;/span&gt; as sessões que estão executando este relatório, precisaríamos então incluir no fonte do sistema (antes do usuário submeter a execução do relatório), o comando abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Irei realizar uma simulação como se o sistema em uso fosse o próprio &lt;span style="font-weight: bold;"&gt;SQL*PLUS&lt;/span&gt;, utilizando o usuário &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;SCOTT&lt;/span&gt; para realizar a conexão com o banco de dados:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; exec &lt;span style="font-weight: bold;"&gt;dbms_application_info.set_module&lt;/span&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          module_name =&gt; '&lt;span style="color: rgb(51, 51, 255);"&gt;Controle de Estoque&lt;/span&gt;',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          action_name =&gt; '&lt;span style="color: rgb(51, 51, 255);"&gt;Executando Relatório de Materiais&lt;/span&gt;');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Ao executar o procedimento acima, poderemos então obter tais informações selecionando as mesmas da view dinâmica de desempenho V$SESSION:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select osuser,machine,program,module,action from &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2  v$session where username='SCOTT';&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OSUSER     MACHINE     PROGRAM      &lt;span style="color: rgb(0, 153, 0);"&gt;MODULE&lt;/span&gt;              &lt;span style="color: rgb(0, 153, 0);"&gt;ACTION&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;---------- ----------- ------------ ------------------- ---------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;legatti    MICRO_001   sqlplus.exe  &lt;span style="color: rgb(51, 51, 255);"&gt;Controle de Estoque&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Executando Relatório de Materiais&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como demonstrado acima, podemos perceber que as colunas &lt;span style="color: rgb(0, 153, 0);"&gt;MODULE&lt;/span&gt; e &lt;span style="color: rgb(0, 153, 0);"&gt;ACTION&lt;/span&gt; foram populadas. Em resumo, poderemos então utilizar o pacote DBMS_APPLICATION_INFO em nossas aplicações de forma a disponibilizar ao administrador do sistema ou até mesmo ao DBA, uma opção para visualizar em tempo real "&lt;span style="color: rgb(255, 0, 0);"&gt;quem&lt;/span&gt;" está fazendo "&lt;span style="color: rgb(255, 0, 0);"&gt;o quê&lt;/span&gt;" dentro do sistema em questão.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Caso seja necessário disponibilizar mais informações, poderemos também fazer uso da coluna &lt;span style="color: rgb(0, 153, 0);"&gt;CLIENT_INFO&lt;/span&gt; como demonstrado abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; exec &lt;span style="font-weight: bold;"&gt;dbms_application_info.set_client_info&lt;/span&gt;('&lt;span style="color: rgb(51, 51, 255);"&gt;data, hora, meu IP, etc...&lt;/span&gt;');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Procedimento PL/SQL concluído com sucesso.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select client_info from v$session where sid=(select sid from v$mystat where rownum=1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CLIENT_INFO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;" &gt;data, hora, meu IP, etc...&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Como eu citei acima a informação de &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;endereço IP&lt;/span&gt;, poderemos também fazer uso da função &lt;span style="font-weight: bold;"&gt;SYS_CONTEXT&lt;/span&gt; de forma a acessar esta e outras informações da sessão em questão:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SQL&gt; select SYS_CONTEXT('USERENV', 'TERMINAL') micro,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  2             SYS_CONTEXT('USERENV', 'IP_ADDRESS') ip,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  3             SYS_CONTEXT('USERENV', 'OS_USER') usuario_rede from dual;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MICRO          IP             USUARIO_REDE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------- -------------- --------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;MICRO_001      192.168.1.10   legatti&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;No mais, restaria ao desenvolvedor encontrar a forma mais apropriada de implementar tal solução na linguagem de programação ou framework em uso (Java, PHP, Delphi, etc...).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr style='color: blue' /&gt;
Este artigo pertence ao &lt;a href="http://eduardolegatti.blogspot.com"&gt;Oracle Blog por Eduardo Legatti&lt;/a&gt;.&lt;br/&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6132267453407001083-7642266306572083019?l=eduardolegatti.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eduardolegatti.blogspot.com/feeds/7642266306572083019/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6132267453407001083&amp;postID=7642266306572083019' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7642266306572083019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6132267453407001083/posts/default/7642266306572083019'/><link rel='alternate' type='text/html' href='http://eduardolegatti.blogspot.com/2009/05/um-pouco-do-pacote-dbmsapplicationinfo.html' title='Um pouco do pacote DBMS_APPLICATION_INFO ...'/><author><name>Eduardo Legatti</name><uri>http://www.blogger.com/profile/13417270391272587761</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17771562152629659009'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6132267453407001083.post-7647762483269291544</id><published>2009-05-02T15:58:00.005-03:00</published><updated>2009-08-14T13:27:01.899-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exp_full_database'/><category scheme='http://www.blogger.com/atom/ns#' term='sys'/><category scheme='http://www.blogger.com/atom/ns#' term='findstr'/><category scheme='http://www.blogger.com/atom/ns#' term='exp'/><category scheme='http://www.blogger.com/atom/ns#' term='senha'/><category scheme='http://www.blogger.com/atom/ns#' term='system'/><category scheme='http://www.blogger.com/atom/ns#' term='dba'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Arquivos dump de exportação armazenam as senhas dos usuários SYS e SYSTEM?</title><content type='html'>&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Olá,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;Sabemos que o conteúdo de todo o banco de dados Oracle pode ser exportado para um arquivo &lt;a href="http://eduardolegatti.blogspot.com/2008/04/possvel-saber-o-nmero-de-linhas-por.html"&gt;dump&lt;/a&gt; de exportação usando a opção &lt;span style="font-weight: bold;"&gt;FULL=Y&lt;/span&gt;, seja usando o utilitário de exportação tradicional (&lt;span style="font-weight: bold;"&gt;exp&lt;/span&gt;) disponível em todas as versões do banco de dados Oracle ou usando o utilitário Export Data Pump (&lt;span style="font-weight: bold;"&gt;expdp&lt;/span&gt;) disponível apenas à partir do Oracle 10g. Vale a pena salientar que somente os usuários com a role &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;EXP_FULL_DATABASE&lt;/span&gt; podem fazer isso, mas geralmente isso é realizado usando o usuário padrão &lt;span style="font-weight: bold;"&gt;SYSTEM&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div  style="text-align: justify;font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Este artigo terá apenas o propósito de responder uma dúvida comum para aqueles (iniciantes ou não), que realizam uma exportação completa do banco de dados usando o utilitário de exportação tradicional (&lt;span style="font-weight: bold;"&gt;exp&lt;/span&gt;) através da cláusula &lt;span style="font-weight: bold;"&gt;FULL=Y&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;1)&lt;/span&gt; O arquivo dump de exportação armazena as senhas dos usuários de banco de dados de origem SYS e SYSTEM? &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Sim&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;2)&lt;/span&gt; Quando for realizado a &lt;a href="http://eduardolegatti.blogspot.com/2008/10/por-que-aps-ter-realizado-uma-importao.html"&gt;importação&lt;/a&gt; para um outro banco de dados, as senhas dos usuários SYS e SYSTEM do banco de dados de destino serão alteradas de acordo com as senhas dos usuário SYS e SYSTEM armazenadas no arquivo dump de exportação? &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Sim&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;Abaixo, nada melhor do que provar esta afirmação ...&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;C:\&gt;exp system/***** file=fullexport full=y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Export: Release 11.1.0.6.0 - Production on Sáb Mai 2 15:10:25 2009&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Copyright (c) 1982, 2007, Oracle.  All rights reserved.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Exportação executada no conjunto de caracteres de WE8PC850  e no conjunto de caracteres&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;de AL16UTF16 NCHAR o servidor usa WE8MSWIN1252 conjunto de caracteres (conversão de&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;conjunto de caracteres possível)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sobre exportar o banco de dados inteiro ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando definições de tablespace&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando perfis&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando definições de usuário&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando funções&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando custos de recurso&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando definições de segmento de rollback&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando vínculos de banco de dados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando números de seqüência&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando nomes alternativos de diretórios&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;. exportando namespaces de contexto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;