Home > DB2 / Banco de dados, JAVA > Obtendo o corpo de uma Stored Procedure no DB2

Obtendo o corpo de uma Stored Procedure no DB2

É comum obtermos erros do DB2 em nossa aplicação JAVA retornando algo do tipo:

Caused by:
com.ibm.db2.jcc.am.oo: DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=2304, COLNO=6, DRIVER=3.58.82

Em alguns casos, não temos muitos dados sobre a tabela, campo, etc… então é necessário investigar, para isso, algumas queryes podem nos ajudar, segue:

- Para ver o nome da tabela baseado no Table Id:

db2 “SELECT TABNAME FROM SYSCAT.TABLES WHERE TABLEID=2304″

- Para ver o campo ao qual se refere o erro:

SELECT * FROM SYSCAT.COLUMNS WHERE TABNAME=’TVALDCCONDCVARVL’ AND COLNO=6

- E finalmente, se quiser ver o corpo da procedure, num caso no qual não tenha um cliente que possibilite instalado e só tem acesso via command line (para MACHOS):

db2 “select text from syscat.routines where routinename=’PUPDCONDCREGRA’” > PUPDCONDCREGRA.sql

No caso acima, usei o nome PUPDCONDCREGRA, substitua para o nome de sua proc.

Enjoy!

About these ads
  1. Nenhum comentário ainda.
  1. Nenhum trackbacks ainda.

Deixe uma resposta

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

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 128 outros seguidores

%d bloggers like this: