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.391 ]

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

Configurando o Apache para reconhecer arquivos DWG

Monitoramento de Serviços e Servidores

BackRE - Seu script de backup remoto

Postgres e os Sistemas Alterdata

Compilando o Squid com autenticação PAM

Leitura recomendada

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

Apresentando o FenixSQL - Ferramenta de Banco de Dados para Interbase / Firebird

Case de Sucesso com Sistema de Gestão Hospitalar

O que são Generators no Firebird

Interbase 6 no Slackware

  
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