Inicial > DB2 / Banco de dados, JAVA > Criar Stored Procedure dinâmica no DB2

Criar Stored Procedure dinâmica no DB2

Eu tive a necessidade de escrever uma Stored Procedure dinâmica no DB2 que receberia uma instrução SQL, a executaria e me retornaria um ResultSet.

A mesma seria utilizada em uma tela de busca “genérica” no sistema, para, em tempo de homologação, permitir ao analista efetuar queries, uma vez que o banco de homologação só aceita a chamada de procs, é impossivel efetuar selects diretamente no mesmo.

Enfim, segue o corpo da Procedure, observando que JULIANO é o meu schema:

CREATE PROCEDURE JULIANO1.PSELEMPRRTINGRES (
       IN PAR_CAMPO1        VARCHAR (10000) — este é o parametro que passo para a proc
)
        SPECIFIC JULIANO1.PSELEMPRRTINGRES
        DYNAMIC RESULT SETS 1

P1:BEGIN

     DECLARE strSqlDn                        varchar(10000);
     DECLARE stm_procedimento                     STATEMENT;
     DECLARE cursorDn CURSOR WITH RETURN FOR stm_procedimento;

     SET strSqlDn = PAR_CAMPO1;

     PREPARE stm_procedimento FROM strSqlDn;
     OPEN cursorDn;

END P1

Para invocar a proc, basta chamar:

call JULIANO1.PSELEMPRRTINGRES(‘select * from clientes’);

No Java, eu invoco a Proc normalmente, jogando o resultado para um result set, faço um parse para desenhar a tabela no JSP e voa-lá!

Enjoy!

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

Deixe um comentário