Oracle Sqlloader

Oracle Sqlloader

O SQLLOADER é uma ferramenta no banco de dados Oracle que permite carregar os dados de arquivos externos em um banco de dados. Esta ferramenta permite carregar os dados de vários formatos, incluindo os arquivos de texto delimitados (vírgula, guia e tubulação), largura fixa e arquivos binários. O SQLLOADER é frequentemente usado para carregar as grandes quantidades de dados em um banco de dados, pois é muito mais rápido que as declarações de inserção tradicionais.

SQL*Loader tem várias vantagens sobre outros métodos de carregamento dos dados em um banco de dados. É rápido, eficiente e pode lidar com grandes quantidades de dados. Ele também pode carregar os dados de vários arquivos de dados e carregar seletivamente as linhas específicas de dados com base em critérios especificados.

Este tutorial tem como objetivo entender como podemos usar a ferramenta SQLLOADER nos bancos de dados Oracle para carregar os dados de arquivos externos.

Para usar o SQLLOADER, você primeiro precisa criar um arquivo de controle que especifica os detalhes dos dados que deseja carregar, como a localização dos arquivos de dados, o formato de dados e as colunas e tabelas nas quais os dados devem ser carregados. Depois que o arquivo de controle for criado, você poderá usar o comando sqlldr para executar o sqlloader e carregar os dados no banco de dados.

Oracle sqlldr comando

O comando sqlldr permite que você invoca a ferramenta sqlloader e carregue dados especificados. A sintaxe para o comando é como mostrado:

sqlldr [options] control = control_file

Onde o Control_File é o caminho e o nome do arquivo do arquivo de controle que especifica os detalhes dos dados que você deseja carregar.

Algumas opções aceitas a serem usadas com o comando sqlldr para personalizar como os dados são carregados incluem o seguinte:

  1. ID do usuário - Ele especifica o nome de usuário e a senha ao se conectar ao banco de dados. Esta opção é normalmente usada no UserID = Nome de usuário/senha do formulário.
  2. Registro - Ele especifica o caminho e o nome do arquivo do arquivo de log em que o SQL*carregador escreve uma informação sobre a carga de dados.
  3. Ruim - Ele especifica o caminho e o nome do arquivo do arquivo ruim, onde o SQL*carregador escreve os registros que não puderam ser carregados.
  4. Pular - Ele especifica o número de registros para pular antes de carregar os dados. Isso pode ser útil se você quiser pular uma linha de cabeçalho em um arquivo de dados.

OBSERVAÇÃO: Você precisa do arquivo de controle e do arquivo de dados. Como o nome sugere, o arquivo de controle, também conhecido como arquivo de parâmetro, é usado para definir os parâmetros de carga usados ​​pela ferramenta SQLLOADER, enquanto o arquivo de dados contém os dados a serem carregados no banco de dados.

Como usar a ferramenta SQLLOADER

Vamos demonstrar como podemos usar a ferramenta SQLLOADER para carregar um arquivo CSV de amostra em um banco de dados.

O arquivo contém as seguintes informações:

1, Jessey, 5108751129385546, Estados Unidos
2, Cullan, 30158095148532, China
3, Larry, 5602228155212200, Mianmar
4, Brewer, 676215234357374423, Estados Unidos
5, Iago, 5010120503889936, Grécia

Vamos começar definindo o arquivo de controle com o conteúdo, como mostrado no seguinte:

CARREGAR DADOS
Em usuários da tabela
INSERIR
Campos terminados por ','
(
eu ia,
primeiro nome,
Cartão de crédito,
país
)

O código fornecido especifica o arquivo de controle da ferramenta SQL*Loader para carregar os dados de um arquivo CSV em uma tabela de banco de dados Oracle.

No arquivo de controle, você encontrará informações como:

  1. A instrução de dados de carga que indica que a ferramenta SQL*carregador carrega os dados de um arquivo de dados no banco de dados.
  2. A cláusula infilada que define o caminho para o arquivo de dados. No nosso caso, este é um arquivo CSV chamado user_info.dat
  3. A cláusula de tabela que define o nome da tabela de destino no banco de dados. No nosso caso, é a tabela de usuários.
  4. Em seguida, os campos terminados pela cláusula que especifica que os valores de dados no arquivo CSV são separados por uma vírgula (,).
  5. Em seguida, definimos a lista de colunas na tabela de usuários e os tipos de dados correspondentes.
  6. Você também pode usar a cláusula set para definir que a coluna ID está definida para o próximo valor na sequência do user_sequence. Isso gera automaticamente um valor de chave primária exclusivo para cada registro carregado na tabela de usuários.

OBSERVAÇÃO: Pode ser necessário definir o user_sequence, como mostrado no exemplo a seguir:

Crie sequência user_sequence
Comece com 1
Incremento em 1;

Esta declaração cria uma sequência chamada user_sequence que começa em um e incrementos por 1 para cada novo valor que é adicionado à tabela.

Depois de prontos os arquivos de dados e controle, precisamos definir o arquivo de parâmetro que governa como a ferramenta SQLLOADER lida com o processo de carga.

UserID = HR/senha
CONTROL = CONTROL_FILE.CTL
log = user_load_data.registro
Bad = user_load_data.ruim
dados = user_info.dat
direto = true

Os parâmetros são explicados da seguinte forma:

  1. ID do usuário - O parâmetro UserID especifica o nome de usuário e a senha a serem usados ​​ao se conectar ao banco de dados Oracle. Nesse caso, precisamos nos conectar como usuário de RH com a senha especificada.
  2. ao controle - Este parâmetro define o nome e a localização do arquivo de controle da ferramenta SQL*Loader. Em nosso exemplo, usamos o Control_File.CTL do diretório de trabalho atual.
  3. registro - O parâmetro de log define o nome do arquivo de log que a ferramenta SQL*Loader gera para acompanhar os logs de operação de carga.
  4. ruim - Nesse caso, o parâmetro ruim representa o nome do arquivo ruim que a ferramenta SQL*Loader gera para armazenar quaisquer registros que não pudessem ser carregados devido a erros.
  5. dados - Este parâmetro define o nome do arquivo para o arquivo de dados a ser carregado no banco de dados.
  6. direto - Finalmente, o parâmetro direto especifica se a ferramenta de carregador SQL*deve usar o modo de carga do caminho direto. O modo direto ignora algumas verificações de banco de dados integradas, como verificações de integridade e restrição. Isso pode aumentar drasticamente a velocidade de carregamento, especialmente em um grande conjunto de dados.

O próximo passo é criar a tabela de usuários na qual carregamos os dados de destino.

Crie usuários de tabela (
número de identidade,
First_name Varchar2 (50),
Credit_Card Varchar2 (100),
país varchar2 (50)
);

Depois que todos os arquivos estiverem prontos, podemos abrir o terminal e invocar o comando sqlldr, conforme mostrado no exemplo a seguir:

$ sqlldr userID = hr/senha parfile = paramfile.par

OBSERVAÇÃO: Você pode nomear o arquivo de dados, controle e param com qualquer nome de arquivo aceitável. Certifique -se de fazer referência ao nome do arquivo correto nos comandos.

Isso deve carregar os dados na tabela de usuários e imprimir a seguinte saída:

$ sqlldr parfile = paramfile.par
SQL*carregador: Release 19.0.0.0.0 - ****
Caminho usado: direto
Carga concluída - contagem de registros lógicos 5.
Usuários da tabela:
5 linhas carregadas com sucesso.
Verifique o arquivo de log:
user_load_data.registro

Para verificar se os dados foram carregados no banco de dados, podemos selecionar todos os valores da tabela da seguinte forma:

selecione * dos usuários;

Resultado:

Conclusão

Neste tutorial, você encontrou a ferramenta SQLLOADER, um utilitário de linha de comando no banco de dados Oracle que permite carregar os dados dos arquivos externos em um banco de dados Oracle. Você descobriu os vários métodos e técnicas, incluindo a definição de um arquivo de controle e um arquivo de parâmetro, e carregando os dados no banco de dados. Embora a ferramenta Sqlloader possa parecer inicialmente intimidadora, esperamos que este tutorial tenha ajudado você a se tornar mais confiante em usar a ferramenta.

Portanto, o uso da ferramenta SQL*Loader pode ser benéfico para o carregamento rápido e eficiente de grandes quantidades de dados em um banco de dados Oracle.