Formatando código SQL
13 Dec 2005Padronizar pode ser um saco, mas é necessário. Formatar corretamente um comando SQL pode poupar vários minutos, ou horas, para entender ao que ele se propõe. O Eddie Awad, em seu blog, traz uma dica bem interessante, ao indicar ferramentas que automatizam o processo de formatação do código SQL:
- SQLinForm. Através de um applet Java, oferece inúmeras funcionalidades.
- Online SQL Formatter. Ferramenta online, sem applet Java.
- SQL Review. Ideal para ambientes sem conexão com a Internet, necessita instalação
As ferramentas não só organizam, mas também exportam o formato até para linguagens de programação, como: PHP, Java e Delphi. Que tal um exemplo? Copie o exemplo abaixo e teste você mesmo.
select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.t
ype#,i.flags,i.property,i.pctfree$,i.initrans,i.ma
xtrans,i.blevel,i.leafcnt,i.distkey,i.lblkkey,i.db
lkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i
.dataobj#,nvl(i.degree,1),nvl(i.instances,1),i.row
cnt,mod(i.pctthres$,256),i.indmethod#,i.trunccnt,n
vl(c.unicols,0),nvl(c.deferrable#+c.valid#,0),nvl(
i.spare1,i.intcols),i.spare4,i.spare2,i.spare6,dec
ode(i.pctthres$,null,null,mod(trunc(i.pctthres$/25
6),256)),ist.cachedblk,ist.cachehit,ist.logicalrea
d from ind$ i, ind_stats$ ist, (select enabled, mi
n(cols) unicols,min(to_number(bitand(defer,1))) de
ferrable#,min(to_number(bitand(defer,4))) valid# f
rom cdef$ where obj#=:1 and enabled > 1 group by e
nabled) c where i.obj#=c.enabled(+) and i.obj# = i
st.obj#(+) and i.bo#=:1 order by i.obj#
Se não funcionou de primeira, revise as opções. Muito útil para qualquer programador, ou DBA.