Introdução: Importando Dados para o Firebird
Você está tendo dificuldades para importar dados de um arquivo CSV para o seu banco de dados Firebird? Talvez você tenha encontrado ferramentas que esperam que seu CSV esteja perfeitamente formatado, incluindo cada detalhe que sua tabela de destino exige. Essa situação pode ser frustrante, especialmente quando você sabe que seus dados não podem ser importados de um método direto.
Neste post do blog, exploraremos uma maneira eficaz de gerar instruções INSERT
SQL a partir de seus arquivos CSV. Abordaremos especificamente questões comuns, como a necessidade de referenciar tabelas adicionais para valores de consulta e usar procedimentos armazenados para identificadores únicos.
Visão Geral do Problema
Ao importar dados para um banco de dados Firebird, as ferramentas comuns frequentemente têm limitações. Elas podem não suportar:
- SQL personalizado nas instruções de insert
- A necessidade de buscar informações de outras tabelas (como IDs de cidades)
- O uso de procedimentos armazenados para gerar GUIDs únicos
Necessidades Abordadas:
- Você precisa gerar SQL que inclua LOOKUP para valores (por exemplo, IDs de cidades).
- Você deseja implementar um procedimento armazenado para criar GUIDs durante a operação de inserção.
Para fornecer uma solução prática, vamos descrever como alcançar isso usando uma ferramenta que você provavelmente tem acesso: Microsoft Excel.
Solução: Usando o Excel para Criar Instruções SQL
Passo 1: Importar Seu Arquivo CSV
- Abra o Excel e navegue até a aba
Dados
. - Escolha
Obter Dados
e selecione o arquivo CSV que você deseja importar. - Carregue os dados em uma planilha do Excel, onde cada coluna representará um campo de dados.
Passo 2: Criar a Instrução SQL Insert
Você pode usar fórmulas do Excel para construir sua instrução SQL INSERT
. Por exemplo, se seu CSV possui três colunas correspondentes a ID
, NOME
e NOME_CIDADE
, você utilizaria a concatenação de strings para formular seu comando INSERT.
Aqui está uma fórmula de exemplo para alcançar isso:
="INSERT INTO PERSON (ID, NAME, CITY_ID) VALUES((SELECT NEW_GUID FROM CREATE_GUID), '" & A1 & "', (SELECT CITY_ID FROM CITY WHERE NAME = '" & C1 & "'))"
Passo 3: Arraste a Fórmula para Baixo
- Coloque a fórmula acima em uma nova coluna (por exemplo, Coluna D) ao lado dos seus dados existentes nas Colunas A (ID), B (NOME) e C (NOME_CIDADE).
- Clique no canto inferior direito da célula com sua fórmula e arraste para baixo para preencher a fórmula para todas as linhas dos seus dados.
Passo 4: Copie e Cole o SQL em um Arquivo de Texto
Após gerar as instruções SQL, faça o seguinte:
- Selecione a coluna inteira com suas instruções SQL.
- Copie (Ctrl + C).
- Abra um editor de texto (como o Bloco de Notas) e cole (Ctrl + V) as instruções.
- Salve o arquivo com a extensão
.sql
.
Passo 5: Execute o Arquivo SQL
Por fim, você pode executar os comandos SQL contra seu banco de dados Firebird usando seu método preferido (como a ferramenta de linha de comando isql).
Conclusão
Embora possa parecer rudimentar usar o Excel para gerar instruções SQL, pode ser um método “rápido e sujo” para inserir seus dados eficientemente em um banco de dados Firebird quando as ferramentas falham. Você pode gerenciar inserções complexas com subselects e utilizar procedimentos armazenados sem gastar horas tentando configurar ferramentas padrão de importação de dados.
Agora você está equipado com uma abordagem simples para gerar instruções SQL a partir de arquivos CSV. Boa codificação!