Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Exemplo de Tabela Externa Oracle

Um uso comum de uma tabela externa é a seleção de dados de um arquivo OS CSV (flat) via SQL *Plus. Ao usar uma tabela externa neste modo, você deve especificar o tipo de dados no arquivo e como os dados são organizados. Você pode selecionar de uma tabela externa, mas não tem permissão para modificar o conteúdo (sem inserções, atualizações ou exclusões).

O recurso de tabela externa do Oracle permite que você execute duas operações distintas:
  • Selecione informações de forma transparente de arquivos de valores separados por vírgulas (CSV) do SO via SQL, o que permite realizar tarefas como carregar esses arquivos no banco de dados.
  • Crie arquivos de despejo independentes de plataforma que possam ser usados ​​para transferir dados. Você também pode criar esses arquivos compactados e criptografá-los para um transporte de dados eficiente e seguro


Neste exemplo, o arquivo simples é denominado ex.csv e está localizado no diretório D:Extbl. Ele contém os seguintes dados:5|2|0|0|12/04/2012|Half6|1|0|1|09/06/2013|Quarter7|4|0|1|08/10/2013|Full8| 1|1|0|06/15/2013|QuarterFirst, crie um objeto de diretório que aponte para o local do arquivo simples no disco:SQL> crie o diretório exa_dir como 'D:Extbl';Em seguida, crie o script que cria a tabela externa que fará referência ao arquivo simples:criar tabela exadata_et(exa_id NUMBER,machine_count NUMBER,hide_flag NUMBER,oracle NUMBER,ship_date DATE,rack_type VARCHAR2(32))organização externa (tipo oracle_loaderdiretório padrão exa_diraccess parameters(registros delimitados por campos de nova linha terminados por '|' os valores de campo ausentes são null(exa_id,machine_count,hide_flag,oracle,ship_date char date_format date mask "mm/dd/yyyy",rack_type))location ('ex.csv'))reject limit Unlimited;Uma tabela externa chamada EXADATA_ET é criada quando você executa este script. Agora, use o SQL*Plus para visualizar o conteúdo do arquivo simples:SQL> select * from exadata_et;EXA_ID MACHINE_COUNT HIDE_FLAG ORACLE SHIP_DATE RACK_TYPE---------- ------------ - ---------- ---------- ---------- -------- -5 2 0 0 04-DEZ-11 Semestre6 1 0 1 06-SET-12 Trimestre7 4 0 1 10-AGO-12 Completo8 1 1 0 15-JUN-12 Trimestre