Visão geral sobre PL/SQL


Autor/fonte: Márcio Novelli
E-mail/Url: http://www.freecode.com.br/drartigos/artigo.php?cdart=161&id=1583
Tags: [ oracle ]



Digg del.icio.us

PL/SQL significa "Procedural Language extensions to SQL". O PL/SQL pode ser usado em bancos de dados Oracle, no Oracle Server, em ferramentas clientes, isto é, Oracle Forms. O PL/SQL é muito similar à linguagem SQL mas acrescenta construções de programação similares a outras liguagens.

A história do PL/SQL

Antes de 1991 a única forma deusar construções procedureis com o SQL era usar PRO*C. Foi onde as instruções SQL do Oracle foram embutidas em código C. O código C era pré-compilado para converter as instruções SQL em chamadas de bibliotecas.

Em 1991 o PL/SQL 1.0 foi lançado com o Oracle Versão 6.0. Ele era muito limitado nas suas capacidades.

O PL/SQL Versão 2.0 foi lançado com o Oracle Versão 7.0. Esta era uma atualização maior. Ele suportava stored packages, procedures, funções, tabelas PL/SQL, registros definidos pelo programador e package extensions.

O PL/SQL Versão 2.1 foi liberado com a Versão 7.1 do Oracle. Isto permitiu o uso de stored functions dentro de instruções SQL e a criação de SQL dinâmico pelo uso do pacote DBMS_SQL. Foi também possível executar instruções de Linguagens de Definição de Dados de programas PL/SQL.

A Versão 2.2 PL/SQJL foi lançada com a Versão 7.2 do Oracle. Ele implementava um envólucro para programas PL/SQL para proteger o código de olhares curiosos. Também foi possível agendar trabalhos do banco de dados com o pacote DBMS_JOB.

A Versão 2.3 do PL/SQL foi lançado com a Versão 7.3 do Oracle. Esta versão aumentou as capacidades das tabelas PL/SQL e adicionou funcionalidades de E/S de arquivos.

A Versão 2.4 do PL/SQL foi liberada com a Versão 8.0 do Oracle. Esta versão suporta os melhoramentos do Oracle 8, incluindo Large Objects, projeto orientado a objetos, tabelas aninhadas e Oracle advanced queuing.

Fundamentos do PL/SQL

O conjunto de caracteres do PL/SQL

Programas PL/SQL consistem dos seguintes caracteres, as letras A- Z, a- z, os números 0 - 9, os símbolos ~!@#$%&*()[]{};:'"<>,.?/.

O PL/SQL é caso insensitivo, letras maiúsculas e letras minúsculas são equivalentes.

Comentando o nosso código

Todo bom código PL/SQL merece ser comentado. Temos duas maneiras de comentar código. Podemos usar o duplo '-' para comentar uma única linha de código. Tudo depois de -- é ignorado até o fim da linha.

Por exemplo:

-- Função que calcula comissão de vendas
IF sales > 0 THEN
commission := sales * 0.1;
END IF;

Podemos também colocar nosso comentário em uma linha que contém código a ser executado.

Por exemplo:

IF sales > 0 THEN
commission := sales * 0.1; -- A % da comissão é de 10 porcento.
END IF;

Agora quando queremos comentar múltiplas linhas dentro do PL/SQL podemos usar os seguintes caracteres /* */. Tudo entre esses caracteres é ignorado e tratado como um comentário.

Por exemplo:

PROCEDURE update_balance (cust_id IN NUMBER) IS
/* Procedure: update_balance
Autor: José Silva
Descrição: Procedure de Teste
*/

Usando aspas dentro de strings

Muitas pessoas que começam a trabalhar com PL/SQL (e algumas outras variações do SQL) enfrentam problemas com o uso de aspas em literais. A seguir estão algumas dicas ao se usar aspas:

. Para colocar uma aspa simples dentro de uma literal, ponha duas aspas simples juntas;
. Para colocar uma aspa simples no começo ou no final de um literal, ponha três aspas juntas;
. Para criar uma string literal consistindo de uma única aspa, ponha quatro aspas simples juntas;
. Para criar uma string consistindo de duas aspas simples juntas, ponha seis aspas simples juntas.

As regras são simples, por isso é bom decorá-las!

Identificadores

Um identificador é o nome para um objeto PL/SQL. Objetos podem incluir o seguinte:

. Variáveis;
. Constantes;
. Cursores;
. Packages;
. Procedures;
. Functions;
. Registros;
. Tabelas PL/SQL;
. Palavras Reservadas.

Identificadores do PL/SQL devem começar com uma letra, não contém espaços, podem conter os seguintes caracteres $, _ e #. O tamanho máximo de um identificador é de 30 caracteres.

Palavras reservadas

O PL/SQL possui palavras reservadas, não é uma boa idéia tentar usar uma palavra reservada como uma variável em seu código. Aqui estão algumas das palavras reservadas em PL/SQL mas não é a lista definitiva, verifique sua documentação atual para a lista completa. Evite o seguinte, BEGIN, END, IF, ELSE, END IF, WHILE, LOOP, OPEN, CLOSE, FETCH. Acho que agora você já tem uma boa idéia.

Literais

Já mencionamos literais, mas o que são eles? Aqui está a definição correta, 'Um literal é um valor que não é representado por um identificador'. Um literal pode ser composto de números, por exemplo, 123, 95 34.56, strings, por exemplo, 'Hello World', 'João Silva' e valores booleanos como TRUE e FALSE.

O delimitador de instruções

Todo programa PL/SQL consiste de muitas instruções. Nossas instruções são terminadas com o caracter ';'. Um fim de linha não é um fim de uma instrução, olhe para nossa instrução IF-THEN como um exemplo:

IF sales > 0 THEN
commission := sales * 0.1;
END IF;

Nosso primeiro ponto-e-vírgula finaliza a instrução commission := sales * 0.1 e o segundo ponto-e-vírgula encerra a instrução IF-THEN-END- IF. O mesmo trecho de código poderia ser escrito assim:

IF sales > 0 THEN commission := sales * 0.1; END IF;

Funcionalmente as duas instruções são idênticas, a primeira é muito mais legível. No próximo capítulo discutiremos formatação em blocos do PL/SQL.

Formatando o PL/SQL

Existe apenas um objetivo do layout eficaz de seu código PL/SQL e é 'Revelar e reforçar a estrutura lógica do programa'. PL/SQL beneficia-se por ser uma linguagem bem estruturada, cada bloco de código tem um começo e um fim bem definidos.

Por exemplo:

IF - END IF , LOOP - END LOOP and DO - WHILE .

Criando uma estrutura lógica

Criar nossa estrutura lógica no PL/SQL é bastante simples, fazemos isso usando endentação eficas do nosso código. Aqui está um pedaço de código não-endentado.

Por exemplo:

IF sal > 20000 THEN
comm := sal * 0.1;
ELSIF
sal > 10000 and sal <20000 THEN
comm := sal * 0.06;
ELSE comm := 0;
END IF;

No trecho de código acima é difícil determinar quais instruções vão em dada instrução IF. Se endentarmos cada bloco lógico do código com dois espaços (algumas pessoas preferem três) o código torna-se mais legível e compreensível.

Por exemplo:

IF sal > 20000 THEN
comm := sal * 0.1;
ELSIF
sal > 10000 and sal <20000 THEN
comm := sal * 0.06;
ELSE
comm := 0;
END IF;

Usando maiúsculas e minúsculas para melhorar a leitura do seu código

O código PL/SQL consiste basicamente de tipos de texto. Palavras reservadas e identificadores. Palavras reservadas são elementos de linguagem que foram reservados pelo PL/SQL e tem um significado especial par ao compilador PL/SQL. Exemplos de palavras reservadas são IF, THEN, ELSE, DO WHILE, LOOP, BEGIN E END apenas para citar algumas. Para uma listagem completa das palavras reservadas, veja a documentação do PL/SQL na documentação do Oracle.

Você pode ter notado que temos usado letras maiúsculas para palavras reservadas e minúsculas para identificadores e variáveis. Esta convenção ajuda na leitura do seu código. O compilador PL/SQL não é caso sensitivo, mas muitos desenvolvedores são!




Enviado por xKuRt em 25/03/2007 às 10:32


Itens relacionados

Instalando Oracle 10g no RHEL e Fedora
Alterar formato de DATA no Oracle
Recupera os dados do banco de dados para as variáveis PL/SQL
Gerenciando log do Oracle através do Linux com Logrotate
Relatório de objetos inválidos no SGDB Oracle
Teste do banco de dados Oracle 11g: Active Data Guard
Instant Client Oracle 10G + SQLDeveloper no Linux
Oracle versus Apache Tomcat: Conflito na porta 8080
Strings de conexão ao Oracle
Pivot ou CrossTab (invertendo linhas em colunas) no Oracle

Listar todos itens relacionados

Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Sábado, 29 de Abril de 2017




Leitura recomendada

Aprenda J2ee Em 21 Dias

Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Java Dicas & Truques


Capa do livro
Introduçao A Programaçao Orientada A Objetos


Capa do livro
Desenvolvendo Websites com PHP - Aprenda a Criar Websites Dinâmicos e Interativos com PHP e Banco de Dados





Hostnet

IMD