.comment-link {margin-left:.6em;}

Tuesday, May 31, 2005

Canivete Suiço (SQL Scritps) - Parte I

Vou compartilhar uma série de scripts que uso no dia-a-dia. Qualquer pessoa pode copiar e usá-los a vontade, a maioria deles vem da AskTom ou inspirada em sites da internet e necessidade que foram aparecendo ao longo da jornada.

Para quem me conhece, não é segredo - eu simplesmente abomino qualquer tipo de ferramenta gráfica, seja ela: Toad, tORA, SQLPLUSW, OEM, etc. Eu uso sqlplus, aquele em modo caracter mesmo. Isso! Bem feio e tem que digitar muito, porém em qualquer lugar que vou, eu o econtro lá. Não fico gerenciando tnsnames, pacotes de instalação, nada. Para mim é telnet (ou algum outro bom emulador) e o nosso amigo sqlplus.

Para configurá-lo eu uso os scripts login.sql e connect.sql e a variável de ambiente $SQLPATH que é o PATH para o sqlplus. Defina esta variável de ambiente para um diretório qualquer, onde estarão seus scripts. No meu caso, eu uso o ~/sqlplus_admin e no .profile eu já exporto a variável.

[mportes@lath09 /home01/mportes]$ env | grep SQLPATH
SQLPATH=/home01/mportes/sqlplus_admin

[mportes@lath09 /home01/mportes]$ ll $SQLPATH/login.sql $SQLPATH/connect.sql
-rw-rw-r-- 1 mportes dba 80 Aug 4 2004 /home01/mportes/sqlplus_admin/connect.sql
-rw-rw-r-- 1 mportes dba 1473 Jan 5 07:29 /home01/mportes/sqlplus_admin/login.sql
[mportes@lath09 /home01/mportes]$


Agora, basta conectar-me no Oracle e terei meu usuário e a instância onde estou conectado no prompt. Como? É que toda a vez que o sqlplus é invocado, ele vai até seu path e executa o login.sql, isso acontece somente na entrada (até a versão 9i) depois, para cada connect dentro do sqlplus, ao invés de usar o connect eu uso @connect (script) apenas para ele executar o login.sql novamente e atualizar o usuário@instância.

Outro script de uso diário é dbls.sql para listar meus objetos. A saída para este comando fica assim:

ops$mportes@FCCUAT9I> @dbls %

OBJECT_TYPE OBJECT_NAME S TABLESPACE_NAME
------------ ------------------------------ - ------------------------------
FUNCTION GET_SEARCH_CONDITION
RLS_EXAMP

INDEX PK_DEPT TOOLS
PK_EMP TOOLS
T_PK TOOLS
XDUAL_PK TOOLS

PROCEDURE GEN_DATA
P
PRINT_TABLE
RTS_SECURITY

SEQUENCE S

TABLE DEPT TOOLS
EMP TOOLS
EMP_EXT SYSTEM
EMP_NOBANCO TOOLS
GTT
PLAN_TABLE TOOLS
T TOOLS
T_PHYS
XDUAL

TRIGGER TPHYS_BI_FER


21 rows selected.

A saída vem organizada e de visão confortável. Facilmente eu posso filtrar também:

ops$mportes@FCCUAT9I> @dbls emp

OBJECT_TYPE OBJECT_NAME S TABLESPACE_NAME
------------ ------------------------------ - ------------------------------
INDEX PK_EMP TOOLS

TABLE EMP TOOLS
EMP_EXT SYSTEM
EMP_NOBANCO TOOLS


4 rows selected.

Comments:
Eu, assim como você prefiro o SQL*PLUS. Eu mesmo montei alguns scripts parecidos com os seus, mas copiei os seus, gostei mais deles. Valeu Márcio
 
Espera que tem mais! ;)
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?