sexta-feira, 29 de julho de 2011

Tópico: Output messages in PL/SQL

Ok, para este tópico, não usarei o Oracle SQL Developer, mas o Oracle SQL*Plus;
Estou usando a versão 8, mas não se preocupem, isto em nada influenciará os nossos estudos. Para começarmos a lançar mensagens, teremos que habilitar o servidor de saída. Usamos a instrução ‘SET SERVEROUTPUT ON’. Você só precisa fazer isto uma vez para cada sessão, ou seja, o servidor estará habilitado até o momento em que você fechar o SQL*Plus.


Ok, agora vamos construir um Bloco Anônimo PL/SQL (já sabemos do que se trata) que vai nos retornar uma mensagem através do servidor que acabamos de ativar.
Começamos com o velho e bom ‘BEGIN’ e agora vem a novidade.

DBMS_OUTPUT.PUT_LINE(‘OLÁ! MEU NOME É RUDAK!’);

Para não me esquecer de algumas instruções, gosto de fazer certas analogias. Como não me esquecer de uma instrução deste tamanho?

DBMS -> Isto me parece ser um sigla de DataBase MeSsage (mensagem da base de dados).
DBMS_OUTPUT -> Eu traduziria isto como ‘Mensagens de saída da base de dados’
PUT_LINE -> Coloque uma linha com o conteúdo entre parênteses e avança para a próxima linha.

Obs.: para confirmar uma linha no SQL*PLUS (pular linha) use a tecla ENTER. XD;
Nosso bloco ficará assim:

BEGIN
  DBMS_OUTPUT.PUT_LINE (‘OLÁ! MEU NOME É RUDAK!’);
END;
/
 A barra serve para dizer ao compilador “Ok compilador! Compile o bloco PL/SQL acima!”. Já vimos que no Oracle SQL Developer não é preciso usá-la.


Resultado: ele ‘printou’ na tela a mensagem que especificamos e depois confirmou o sucesso da operação.
Pense no DBMS_OUTPUT como uma classe. Sendo uma classe, ele pode conter vários métodos. E têm. Vejamos alguns deles:

1)PUT_LINE: Já vimos como funciona, retorna uma mensagem e pula para a próxima linha. Mais tarde veremos que esta mensagem pode vir concatenada à uma variável.
Exemplo:
BEGIN
  DBMS_OUTPUT.PUT_LINE(‘OLÁ! MEU NOME É RUDAK!’);
END;
/
2)PUT: Retorna uma mensagem e mas não pula para a próxima linha. Vejamos o exemplo a seguir:
Exemplo:
BEGIN
   DBMS_OUTPUT.PUT(‘OLÁ! MEU NOME É’);    
   DBMS_OUTPUT.PUT(‘ RUDAK!’);                       
END;
/

O resultado da execução deste bloco será “OLÁ! MEU NOME É RUDAK!” Notaram que ele não pulou uma linha?

3)NEW_LINE: Este método simplesmente cria uma linha em branco, ou se você preferir, pula uma linha.
Eu diria que o PUT_LINE é um cruzamento de um PUT com um NEW_LINE. XD

PUT_LINE = PUT + NEW_LINE;

Exemplo:
BEGIN
   DBMS_OUTPUT.PUT (‘OLÁ! MEU NOME É’);
   DBMS_OUTPUT.NEW_LINE;
   DBMS_OUTPUT.PUT_LINE(‘ RUDAK!’);
END;
/
Agora sim pulou para a linha debaixo!

Valeu pessoal, até a próxima!

Nenhum comentário:

Postar um comentário