Início > 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!

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

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

%d blogueiros gostam disto: