Pular para o conteúdo

Entendendo a DBMS_OUTPUT no Oracle PL/SQL: Como exibir informações e debugar seu código

Entendendo a DBMS_OUTPUT no Oracle PL/SQL

Introdução

A DBMS_OUTPUT é um pacote integrado fornecido pela Oracle que permite aos desenvolvedores exibir informações, debugar ou capturar saídas dentro de um programa PL/SQL. Embora não seja a única forma de obter feedback durante a execução de procedimentos e funções, é, sem dúvida, uma das mais usadas, principalmente porque é simples de implementar e usar.

Ativação

Para começar a usar a DBMS_OUTPUT, é necessário habilitar a saída do servidor. Isso pode ser feito no ambiente SQL*Plus com o comando:

SQL> SET SERVEROUTPUT ON;

Em ambientes de desenvolvimento como o Oracle SQL Developer, essa opção pode ser habilitada através da interface gráfica.

Sintaxe Básica

O pacote DBMS_OUTPUT oferece diversas subprogramas (procedimentos e funções), mas os mais comumente usados são:

DBMS_OUTPUT.PUT

Este procedimento coloca uma string na fila de buffer sem um caractere de nova linha.

Exemplo

 BEGIN
    DBMS_OUTPUT.PUT('Olá, ');
    DBMS_OUTPUT.PUT('Mundo!');
 END;
 /
Olá, Mundo!PL/SQL procedure successfully completed.
DBMS_OUTPUT.PUT_LINE

Este procedimento coloca uma string na fila de buffer com um caractere de nova linha.

Exemplo

 BEGIN
    DBMS_OUTPUT.PUT_LINE('Olá, Mundo!');
 END;
 /
Olá, Mundo!

PL/SQL procedure successfully completed.
DBMS_OUTPUT.NEW_LINE

Coloca um caractere de nova linha na fila de buffer.

Exemplo

 BEGIN
    DBMS_OUTPUT.PUT('Olá, ');
    DBMS_OUTPUT.NEW_LINE;
    DBMS_OUTPUT.PUT('Mundo!');
 END;
 /
Olá, 
Mundo!PL/SQL procedure successfully completed.
DBMS_OUTPUT.GET_LINE

Recupera uma linha do buffer.

Exemplo

 DECLARE
   linha VARCHAR2(255);
   status INTEGER;
 BEGIN
   DBMS_OUTPUT.GET_LINE (linha, status);
   DBMS_OUTPUT.PUT_LINE('Status: ' || status || ', Linha: ' || linha);
 END;
 /
Status: 0, Linha: 
PL/SQL procedure successfully completed.
DBMS_OUTPUT.GET_LINES

Recupera várias linhas do buffer.

Exemplo

 DECLARE
   linhas DBMS_OUTPUT.chararr;
   num_linhas NUMBER := 10;
 BEGIN
   DBMS_OUTPUT.GET_LINES (linhas, num_linhas);
   -- Fazer algo com as linhas aqui
 END;
 /
PL/SQL procedure successfully completed.
DBMS_OUTPUT.ENABLE

Habilita a fila de buffer.

Exemplo

 BEGIN
    DBMS_OUTPUT.ENABLE(buffer_size => 1000000);
    DBMS_OUTPUT.PUT_LINE('Buffer habilitado com tamanho de 1MB');
 END;
 /
Buffer habilitado com tamanho de 1MB
PL/SQL procedure successfully completed.
DBMS_OUTPUT.DISABLE

Desabilita a fila de buffer.

Exemplo

 BEGIN
    DBMS_OUTPUT.DISABLE;
    DBMS_OUTPUT.PUT_LINE('Isso não será exibido');
 END;
 /
PL/SQL procedure successfully completed.

Buffer de Saída

O DBMS_OUTPUT tem um buffer para armazenar as saídas. A capacidade padrão do buffer é de 20000 bytes, mas você pode definir o tamanho do buffer usando DBMS_OUTPUT.ENABLE.

Conclusão

A DBMS_OUTPUT é uma ferramenta poderosa para debugar e entender o que está acontecendo dentro dos seus programas PL/SQL. Com uma sintaxe simples e direta, ela permite que você capture informações importantes para garantir que seu código esteja funcionando como esperado.

Abs

Referências

Giovano Silva

Giovano Silva

Giovano Silva é um profissional com mais de 10 anos de experiência em tecnologias Oracle, com ênfase em PL/SQL. Ele adora escrever sobre soluções para problemas comuns enfrentados por profissionais Oracle em seu dia a dia. Seu objetivo é compartilhar conhecimento, simplificar conceitos complexos e ajudar a comunidade Oracle a crescer coletivamente.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress