Coletando informações direto do FIREBIRD via D.O.S. ou SHELL

Neste artigo demonstro como é possível a execução de comandos SQL via D.O.S. ou SHELL SCRIPT diretamente de um banco de dados FIREBIRD. É de grande utilidade quando necessitamos executar remotamente comandos SQL ou para criação de relatórios gravados em arquivos.

[ Hits: 34.452 ]

Por: Claudio Mercaldo de Almeida em 10/10/2007


Introdução



É possível a execução de comandos SQL via D.O.S. ou SHELL SCRIPT?

Sinceramente nunca ouvi falar... até quando precisei!

A idéia é usarmos scripts que podem rodar no D.O.S. ou no SHELL SCRIPT, realizando tarefas diretamente no banco de dados FIREBIRD.

Assim poderemos mandar apenas um arquivo para o usuário de um banco remoto ou até mesmo executá-lo dentro do servidor de dados.

Vamos iniciar nossa jornada!

Em D.O.S.

01. Para o funcionamento no D.O.S., vamos criar um diretório para verificar as importações realizadas direto no FIREBIRD. Não importa se o FIREBIRD está instalado em ambiente Windows ou Linux. Bom... melhor se for no Linux!

D.O.S. (o início)

C:\> md coleta
C:\> cd \coleta
C:\coleta> edit col_script.bat

rem
rem Script de coleta - Firebird
rem Claudio Mercaldo
rem Versão 1.0

rem *** Diretório de trabalho
C:
CD\COLETA

rem *** Apaga arquivos da ultima coleta
DEL FORNECEDOR.TXT
DEL CLIENTES.TXT

rem *** Diretório do FIREBIRD
cd "C:\arquivos de programas\FirebiRD\Firebird_1_5\bin"

rem *** Isql direto no banco - Tabela fornecedor
isql "10.1.1.10:/databases/DADOS.GBD" -i "C:\COLETA\select_FORNECEDOR.sql" -o "C:\COLETA\FORNECEDOR.TXT" -u sysdba -p masterkey -page 1000000

rem *** Isql direto no banco - Tabela clientes
isql "10.1.1.10:/databases/DADOS.GBD" -i "C:\COLETA\select_CLIENTES.sql" -o "C:\COLETA\CLIENTES.TXT" -u sysdba -p masterkey -page 1000000


rem *** Volta para o diretório de coleta
C:
CD\COLETA
DIR

rem

02. O script de coleta já esta pronto, mas agora temos que criar os arquivos que serão responsáveis pela coleta das informações.

C:\coleta> edit select_FORNECEDOR.sql

select * from fornecedor;

No outro digite:

C:\coleta> edit select_CLIENTES.sql

select * from clientes;

03. Lembrando que nestes arquivos será possível executar praticamente todos os comandos sql do Firebird (select, update, insert, alter table, etc). Muito útil!

AVISO: Ao tentar criar os arquivos (.sql) no Windows tive problemas na formatação do arquivo e simplesmente não executava nada. Crie o primeiro arquivo no D.O.S. e depois crie cópias de acordo com a sua necessidade. Ex. com o D.O.S. (Iniciar --> executar --> cmd)

Microsoft Windows XP [versão 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS> cd \coleta
C:\coleta> copy con select_FORNECEDOR.sql

select * from fornecedor;
^Z
1 arquivo(s) copiado(s).

C:\coleta>

04. Agora basta executar. Lembre-se que estou usando o usuário padrão do FIREBIRD (sysdba, masterkey), talvez no seu caso seja necessário alterar no script.

C:\coleta> col_script

*** Verifique se os arquivos foram gerados no diretório de coleta.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Em Shell Script
   3. Diferenças - D.O.S. x Shell script
Outros artigos deste autor

BackRE - Seu script de backup remoto

Compilando o Squid com autenticação PAM

Postgres e os Sistemas Alterdata

Monitoramento de Serviços e Servidores

Configurando o Apache para reconhecer arquivos DWG

Leitura recomendada

Manual de instalação do Interbase Server no Conectiva Linux

Criando um banco de dados no Flamerobin (Firebird)

Criando uma aplicação em shell script integrada com o Interbase/Firebird

Case de Sucesso com Sistema de Gestão Hospitalar

Interbase no Debian

  
Comentários
[1] Comentário enviado por carlosands em 16/10/2007 - 13:15h

Parabéns Chf. otimo artigo.

[2] Comentário enviado por grtprojetos em 16/02/2017 - 20:27h

Gostaria que o arquivo fosse gerado com a extensão CSV e delimitado por ponto-e-virgula. Tem como? Obrigado.

[3] Comentário enviado por cmercaldo em 22/02/2017 - 16:24h

Prezado Grtprojetos.

Diretamente pelo comando, eu não achei nenhuma solução para a sua solicitação.
Pesquisei aqui no "VOL" e achei um tópico interessante que pode resolver o seu problema:

TÓPICO: REMOVER ESPAÇOS E CARACTERES [RESOLVIDO] - (por: https://www.vivaolinux.com.br/~SuperSlackware)

Onde a melhor resposta pertence ao usuário (https://www.vivaolinux.com.br/~MarceloTheodoro)

Segue o link para a sua analise:

https://www.vivaolinux.com.br/topico/Sed-Awk-ER-Manipulacao-de-Textos-Strings/Remover-espacos-e-cara...

Assim, poderá gerar o arquivo e criar um script que possa remover os espaços e inserir uma (virgula ou ponto e virgula).

Att.
ClaudioM



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts