Esse artigo faz parte da revista SQL Magazine edição 46. Clique aqui para ler todos os artigos desta edição

ce prefix = o ns = "urn:schemas-microsoft-com:office:office" />

IBM DB2

Desenvolvimento em SQL PL para o IBM DB2 – Parte 2

 

Na primeira parte deste artigo vimos os conceitos básicos da SQL PL, aprendemos a criar user defined functions, stored procedures e triggers. Nesta segunda e última parte veremos alguns assuntos um pouco mais avançados da SQL PL como cursores e triggers instead of. Para começar vamos conhecer a principal ferramenta de desenvolvimento do DB2, o Centro de desenvolvimento. O Centro de desenvolvimento é uma ferramenta gráfica distribuída com o DB2 e possibilita o desenvolvimento e depuração de stored procedures no banco de dados.

Criando uma stored procedure pelo Centro de Desenvolvimento

Vamos agora mostrar como utilizar a ferramenta para desenvolvimento e depuração de stored procedures em SQL PL. Na Figura 1 temos o menu onde podemos carregar o centro de desenvolvimento e na Figura 2 temos o centro de desenvolvimento em ação.

 

Figura 1. Carregando o Centro de Desenvolvimento.

Figura 2. O Centro de desenvolvimento do DB2.

Vamos agora criar um novo projeto pelo centro de desenvolvimento para entendermos melhor o seu funcionamento.

No menu você deve selecionar Projeto>Novo Projeto. Em seguida você deve digitar um nome para o projeto e um diretório onde o projeto será armazenado e finalmente você deve conectar o centro de desenvolvimento ao banco de dados (no menu conexões de banco de dados você deve selecionar a opção incluir conexão). Agora é só colocar as informações do seu banco de dados.

Vamos colocar como nome do projeto SQLMAG e como nome do diretório aceitaremos o valor default do centro de desenvolvimento.

Vamos então criar nossa primeira stored procedure pelo centro de desenvolvimento, na sua conexão de banco de dados selecione Procedimento Armazenados>Novo>Procedimentos Armazenados SQL. Veja na Listagem 1 o código da nossa stored procedure.

 

CREATE PROCEDURE PSP.VARRENDO_CLIENTES( )

P1: BEGIN

    DECLARE v_registros INTEGER DEFAULT 0;

    DECLARE v_codigo INTEGER;

    DECLARE SQLSTATE CHAR(5);

    DECLARE CUR_CLIENTE CURSOR

           FOR SELECT Codigo FROM TB_CLIENTE;

    OPEN CUR_CLIENTE;

    FETCH FROM CUR_CLIENTE INTO v_codigo;

    WHILE (SQLSTATE = '00000') DO

       SET v_registros = v_registros + 1;

       FETCH FROM CUR_CLIENTE INTO v_codigo;

    END WHILE;

END P1

Listagem 1. Criando stored procedures pelo centro de desenvolvimento.

 

Utilizaremos o exemplo da Listagem 1 para mostrar como depurar stored procedures pelo centro de desenvolvimento. A stored procedure cria um cursor para a tabela TB_CLIENTE e o percorre registro a registro, o que nos permitirá acompanhar cada passo da execução da stored procedure observando o valor atribuído às variáveis v_registros e v_codigo durante a execução.

Depurando stored procedures pelo Centro de Desenvolvimento

Vamos mostrar agora o básico sobre depuração de stored procedures pelo centro de desenvolvimento. Criaremos alguns pontos de interrupção e em seguida executaremos a stored procedure observando o valor das variáveis que são incrementadas no corpo da stored procedure. Antes de depurar uma stored procedure, devemos compilar a procedure para depuração. Observe na Figura 3 o botão em destaque que é utilizado para este fim.

 

Figura 3. Compilando a stored procedure para depuração.

 

Na Figura 3 você pode observar que foram inseridos dois pontos de interrupção na stored procedure nas linhas 11 e 12. Estes pontos de interrupção serão utilizados para depurá-la. Na Figura 4 você pode observar o botão em destaque que nos permite inserir pontos de interrupção no corpo da stored procedure. ...

Quer ler esse conteúdo completo? Tenha acesso completo