Parâmetro de entrada - Stored Procedures em PL/SQL

Veja nestes terceiro artigo sobre stored procedures do PL/SQL aborda a utilização de parâmetros de entrada (IN).

1. Introdução

Uma stored procedure é um módulo PL/SQL criado com o objetivo de executar uma ou mais ações. Os dois artigos anteriores desta série descreveram a sintaxe para criar procedures sem parâmetros. No entanto, na maior parte das aplicações práticas você precisará criar módulos PL/SQL capazes de se comunicar outro ambiente (ex: .NET, Java, Delphi, PHP) - o ambiente que representa o front end de seu sistema. Essa comunicação é feita através de parâmetros. Por exemplo: o módulo PL/SQL recebe um parâmetro do PHP, processa uma informação e devolve um resultado ao PHP (também através de um parâmetro).

2. Criação de Stored Procedure com parâmetro de entrada (IN)

Neste artigo mostraremos apenas a forma de criar uma procedure que recebe um parâmetro (ou seja, uma procedure com parâmetro de entrada). O código abaixo cria uma procedure PL/SQL chamada “p_milhas_para_km”. Ela recebe como entrada o valor de uma distância em MILHAS e, em seguida, calcular e imprimir o valor equivalente em QUILÔMETROS.

Listagem 1: Stored Procedure “p_milhas_para_km”

CREATE OR REPLACE PROCEDURE p_milhas_para_km(vMilhas IN NUMBER) IS /* ----------------------------------------------------------- PROCEDURE : p_milhas_para_km DESCRIÇÃO : converte valor de distância em milhas para quilômetros PARÂMETROS: vMilhas -> ENTRADA. Valor da distância em milhas ----------------------------------------------------------- */ vKm NUMBER; -- receberá valor convertido para km BEGIN vKm := vMilhas * 1.61; DBMS_OUTPUT.PUT_LINE('Distância em milhas: ' || TO_CHAR(vMilhas)); DBMS_OUTPUT.PUT_LINE('O valor equivalente em km é: ' || TO_CHAR(vKm)); END p_milhas_para_km; /

Compile e execute o código no SQL*Plus para visualizar os resultados. Não esqueça de habilitar a saída do console, com SET SERVEROUT ON, como foi mostrado no primeiro artigo.

Listagem 2: Execução de p_milhas_para_km no SQL*Plus

SQL> EXEC p_milhas_para_km(10); Distância em milhas: 10 O valor equivalente em km é: 16,1 Procedimento PL/SQL concluído com sucesso. SQL>

A procedure foi definida com um parâmetro de entrada (read only) chamado “vMilhas”, do tipo NUMBER. A palavra-reservada IN identifica o parâmetro como sendo do tipo “entrada”. Existem também os parâmetros do tipo OUT e do tipo IN OUT (assuntos do próximo artigo). A figura abaixo mostra que uma procedure pode ser definida com muitos parâmetros, bastando dar o nome e o tipo de cada um deles e separar cada especificação usando virgula.

Figura 1. Estrutura da Procedure.

A variável “vKm” foi definida na seção de declarações. Esta variável é do tipo NUMBER. Para especificar uma variável em um módulo PL/SQL, é necessário indicar seu nome, seguido do tipo. A linha deve ser finalizada com ponto-e-vírgula. A figura abaixo mostra a forma para declarar diversas variáveis.

Figura 2.Declarando diversas variáveis.

Dentro do corpo principal, a instrução vKm := vMilhas * 1.61; representa o comando que converte o valor da distância em milhas para quilômetros, através de uma operação aritmética. O resultado é armazenado na variável vKm, com o uso do comando de atribuição “ := ”.

Nas linhas seguintes, o comando TO_CHAR é usado para converter os valores das variáveis do tipo NUMBER (“vMilhas” e “vKm”) para CHAR, o que possibilita a concatenação destes valores com as mensagens que são apresentadas ao usuário.

Um abraço e até o próximo artigo

Artigos relacionados