CMD executa script de Oracle (sqlplus) ordenados

executa cmd sqlplusNeste artigo vou repassar um arquivo CMD que criei hoje para executar meus scripts de banco no Oracle ordenado e com log de execução.

Este CMD é super simples e pratico e o legal dele é a questão da ordenação alfanumerica na execução dos arquivos, ou seja, vc pode controlar de a ordem de execução dos arquivos apenas renomeando os arquivos, por exemplo:

  • “1. create table.sql”
  • 2. create trigger.sql”
  • 3. alter pk e fk.sql”

Para mudar a ordem de execução basta renomear os arquivos, neste caso quero executar o script de trigger por ultimo, ficando assim:

  • “1. create table.sql”
  • 2. alter pk e fk.sql”
  • 3. create trigger.sql”

Ao criar uma estrutura de banco é necessario ter uma logica sequencial na execução dos scripts, senão pode dar erros como por exemplo criar uma view sem existir a tabela referenciada… Normalmente eu uso a seguinte sequencia de execução para criação de estrutura inicial de banco:

  1. create type
  2. create sequences
  3. create table
  4. create index
  5. create database
  6. create packates e procedures
  7. create function
  8. create view
  9. create sinonimos
  10. create declare
  11. create pk e fk
  12. create trigger
  13. create view materilized
  14. grant

Vc pode usar este CMD para fazer outras coisas no banco, como migração, DTS, rotinas, limpezas… use a criatividade e otimize seu trabalho deixando tudo automatico.

Veja o codigo fonte:
Copie e cole o codigo abaixo no bloco de notas e salva com o nome scripts.cmd, depois execute-o no prompt ou dando dois cliques. Pelo prompt vc consegui acompanhar as etapas e execução.

:: Objeto: Executa os scripts de banco no oracle com ordenação alfanumerica.
:: Configuração: Altere as configurações de acesso ao banco de dados de destino, onde serão executados os scripts
:: TNSNAME_APP é o Nome do TNSName da conexão que será usada, na pasta de instalação do oracle no arquivo “tnsname.ora”
@set USUARIO_APP=Userteste
@set PASSWORD_APP=teste123
@set TNSNAME_APP=Calculadora

:: Busca a data atual formatada
@cls
@For /F “tokens=1,2,3,4 delims=/ ” %%A in (‘Date /t’) do @(
Set DataExecucao=%%A-%%B-%%C
)

:: Caminho que será criado o log, será criado um arquivo por dia
@set LOGFILE=%CD%\Reporte_%DataExecucao%.log
@set BASEDIR=%CD%
@set DIVISORIA=*********************************************************

:: Cabeçalho do arquivo de log
@set MsgScript=Data inicio:  %DataExecucao% %TIME% Banco de dados: %USUARIO_APP% / %TNSNAME_APP%
@echo %MsgScript%
@echo %MsgScript% >> “%LOGFILE%”
@echo. >> “%LOGFILE%”
@echo INICIO DOS SCRIPTS >> “%LOGFILE%”
@echo %DIVISORIA% >> “%LOGFILE%”
@echo. >> “%LOGFILE%”

:: Pesquisa na pasta do cmd executado por arquivos com extensão *.sql e depois executa eles individualmente, salvando o resultado no arquivo de log.
for %%g in (*.sql) do @(
@echo Arquivo: %%g
@echo %DIVISORIA%
@echo Arquivo: %%g >> “%LOGFILE%”
@echo %DIVISORIA% >> “%LOGFILE%”
@echo exit | sqlplus -s %USUARIO_APP%/%PASSWORD_APP%@%TNSNAME_APP% @”%%g” >> “%LOGFILE%”
)

:: Rodapé do arquivo de log
@echo. >> “%LOGFILE%”
@echo TERMINO DOS SCRIPTS >> “%LOGFILE%”
@echo %DIVISORIA% >> “%LOGFILE%”
@echo Arquivos executados: %Arquivos% >> “%LOGFILE%”
@echo. >> “%LOGFILE%”
@echo Arquivo de log: %LOGFILE%
@pause

Um comentário sobre “CMD executa script de Oracle (sqlplus) ordenados

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s