Tabelas externas e CSV

Buenos dias!

Neste post falarei brevemente sobre as external tables recurso para montar tabelas sobre arquivos externos.

Vamos começar criando um arquivo CSV bem simples…

Criando um CSV

Depois desta tarefa vamos brincar com nosso brinquedinho oracle….

( provavelmente o CSV já venha pronto pra vc por meio de seu chefe 🙂 )

Agora, no Oracle, crie um Directory que aponte para a sua nova pasta! ( ainda nao vamos mexer no CSV… )

CREATE DIRECTORY APP_EXTERNALTABLES_DIR AS '/app/externalTables/';

Com este comando informamos ao Oracle que um novo diretório existe e que poderemos ler arquivos dele 🙂

Agora sim poderemos criar nossa tabela do csv!

CREATE TABLE MEU_CSV(
  MINHA_PK NUMBER(5),
  MEU_NOME VARCHAR2(2000),
  MEU_COMENTARIO VARCHAR2(2000)
) ORGANIZATION EXTERNAL (
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY APP_EXTERNALTABLES_DIR
      ACCESS PARAMETERS (
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ';'
        MISSING FIELD VALUES ARE NULL
      )
     LOCATION ('meu.csv')
)

Apenas alguns comentários sobre o comando:

  • O tipo de coluna é você que define, no caso eu escolhi number(5) e varchar2(2000).
  • O parametro Access Parameters é importantíssimo! imagine um CSV com alguma coluna vazia ou apenas uma celula….
  • No parametro LOCATION podem ser passados vários arquivos, ex: LOCATION ( ‘arq1.csv’, ‘arq2.csv’ )

Que tal darmos uma testada na nossa nova tabela!?!?!?

SELECT * FROM MEU_CSV

Caso não funcione o select aqui vão algumas dicas do que pode dar errado ou gerar problemas:

  • Certifique-se de ter informado o caminho certo do arquivo e do diretório
  • Veja se a permissão do arquivo está definida corretamente ( o usuário que inicia o oracle deve ter direitos de leitura no arquivo )

Bem, acho que é isso!

Se vc quiser criar uma tabela partindo desta tabela externa pode usar o seguinte comando:

CREATE TABLE MEU_CSV_NAO_EXTERNO AS
SELECT * FROM MEU_CSV

Lembre-se que você não pode inserir nada na tabela externa.. 🙂

2 comentários sobre “Tabelas externas e CSV”

Deixe uma resposta