terça-feira, 18 de dezembro de 2012

SQL Fomatter

Ferramenta muito boa para formatar código SQL.

http://www.freeformatter.com/sql-formatter.html

Apresenta opções de colar código SQL na janela ou informar URL.
Tem ainda uma grande variedade de linguagens que podem ser formatadas.

Após a formatação basta clicar no botão COPY TO CLIPBOARD  e depois colar onde quiser.

Nota:
A única ressalva é tomar cuidado com comentários no código SQL, que podem ser formatados fora de posição.






terça-feira, 10 de janeiro de 2012

connection string oracle websphere

Problems to connect to Oracle RAC Server via WebSphere Application server.

Classical connection String

 jdbc:oracle:thin:@//ORACLE-SERVER:1521/SERVICE

works fine on Oracle sqldeveloper and Weblogic Application Server.

But, connecting via WebSphere requires a complete string like.

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=off)(FAILOVER=on)(ADDRESS_LIST=(ADDRESS=(protocol=tcp)(host=node1)(port=1521))(ADDRESS=(protocol=tcp)(host=node2)(port=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service)))


Note: Don´t breake this line.

segunda-feira, 9 de janeiro de 2012

Reiniciar serviço de sincronização no Linux

Problemas com sincronização dos servidores de ntp?
Executar um comando simples para reiniciar o serviço.
Principalmente em servidores em cluster, com Oracle RAC ou websphere é de suma importância sincronizar a data.


# service ntpd restart
Shutting down ntpd: [ OK ]
ntpd: Synchronizing with time server: [ OK ]
Starting ntpd: [ OK ]

terça-feira, 3 de janeiro de 2012

Criar Objeto TYPE no Oracle 11g

Criar Objeto TYPE no Oracle 11g

Para a criação de procedure com retorno de multiplas linhas é necessário criar um ou mais objetos TYPE no Oracle 11g.

Perdi um bom tempo lidando com erros de compilação na minha procedure, com o compilador considerando meu TYPE como not Declared.
Seguindo os padrões da Empresa de criação de objetos no banco de dados fiz algo assim:


CREATE OR REPLACE TYPE      "tpDescricao01Descricao02"  

AS OBJECT
( cdColuna01 NUMBER(10),
cdColuna02 NUMBER(10),
cdColuna03 NUMBER(10) );


O nome está alternando maiusculas e minusculas. Até ai tudo bem, o compilador do Oracle aceita e cria o objeto TYPE.
No entanto, ao tentar usar em uma procedure, a mesma não compila.

Erro(1,81): PLS-00201: identifier 'TPDESCRICAO01DESCRICAO02' must be declared

SOLUÇÃO:
Sempre criar os nomes de objeto TYPE com letras maiúsculas, pois o Oracle faz um UPPERCASE para trabalhar com os TYPES.