Vous êtes sur la page 1sur 36

Oracle

PL/SQL
PL/SQL significa "Procedural Language extensions to SQL PL/SQL uma extenso da linguagem procedural do SQL uma combinao de SQL, juntamente com as caractersticas das linguagens de programao procedurais.

PL/SQL
Foi desenvolvido pela Oracle Corporation no incio dos anos 90 para melhorar as capacidades do SQL. O PL/SQL pode ser usado em bancos de dados Oracle, no Oracle Server, em ferramentas clientes, isto , Oracle Forms.

A histria do PL/SQL

Antes de 1991 a nica forma de usar construes procedureis com o SQL era usar PRO*C. Foi onde as instrues SQL do Oracle foram embutidas em cdigo C. O cdigo C era prcompilado para converter as instrues SQL em chamadas de bibliotecas.

A histria do PL/SQL
Em 1991 o PL/SQL 1.0 foi lanado com o Oracle Verso 6.0. Ele era muito limitado nas suas capacidades. O PL/SQL Verso 2.0 foi lanado com o Oracle Verso 7.0. Esta era uma atualizao maior. Ele suportava stored packages, procedures, funes, tabelas PL/SQL, registros definidos pelo programador e package extensions.

A histria do PL/SQL

O PL/SQL Verso 2.1 foi liberado com a Verso 7.1 do Oracle. Isto permitiu o uso de stored functions dentro de instrues SQL e a criao de SQL dinmico pelo uso do pacote DBMS_SQL. Foi tambm possvel executar instrues de Linguagens de Definio de Dados de programas PL/SQL.

A histria do PL/SQL

A Verso 2.2 PL/SQL foi lanada com a Verso 7.2 do Oracle. Ele implementava um envlucro para programas PL/SQL para proteger o cdigo de olhares curiosos. Tambm foi possvel agendar trabalhos do banco de dados com o pacote DBMS_JOB.

A histria do PL/SQL

A Verso 2.3 do PL/SQL foi lanado com a Verso 7.3 do Oracle. Esta verso aumentou as capacidades das tabelas PL/SQL e adicionou funcionalidades de E/S de arquivos.

A histria do PL/SQL

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

O Mecanismo de PL/SQL

Oracle usa um engine de PL/SQL para processar as instrues PL/SQL. Um cdigo de PL/SQL pode ser armazenado no sistema do cliente (client-side) ou no banco de dados (server-side).

O Mecanismo de PL/SQL

O conjunto de caracteres do PL/SQL Programas PL/SQL consistem dos seguintes caracteres, as letras A- Z, az, os nmeros 0 - 9, os smbolos ~!@#$%&*()[]{};:'"<>,.?/. O PL/SQL caso insensitivo, letras maisculas e letras minsculas so equivalentes.

Um bloco PL/SQL Simples


Cada programa PL/SQL consiste em instrues SQL e PL/SQL, a partir de um bloco PL/SQL. Um bloco PL/SQL consiste em trs sees: A seo de Declarao (opcional). A seo de Execuo (obrigatrio). A exceo (ou erro) seo de Handling (opcional).

Seo declarao
A seo Declarao de um Bloco PL/SQL comea com a palavra-chave reservada DECLARE. Esta seo opcional e usada para declarar os espaos reservados como variveis, constantes, registros e cursores, que so usadas para manipular dados na seo de execuo.

Seo declarao

Podem ser quaisquer variveis, constantes e registros, que armazenam dados temporariamente. Cursores so tambm so declarados nesta seo.

Seo de Execuo
A seo de execuo de um bloco PL/SQL comea com a palavra-chave reservada BEGIN e termina com END. Esta uma seo obrigatria e a seo onde a lgica do programa escrita para realizar qualquer tarefa. As construes de programao como loops, instruo condicional e instrues SQL formam a parte da seo de execuo.

Seo exceo
A seo de exceo de um Bloco PL/SQL comea com a palavra-chave reservada EXCEPTION. Esta seo opcional e qualquer erro no programa pode ser tratado nesta seo, de modo que os blocos PL/SQL terminam com sucesso.

Seo exceo

Se o bloco PL/SQL contm excees que no podem ser tratadas, o bloco termina abruptamente com erros.

PL/SQL
Cada declarao deve terminar com um ponto e vrgula ; Blocos PL/SQL podem ser aninhados dentro de outros blocos PL/SQL. Os comentrios podem ser usadas para documentar cdigo.

PL/SQL

PL/SQL a forma mais rpida de processar dados em Bancos de Dados Oracle. Entenda processar dados como no apenas submeter instrues SQL (UPDATE, SELECT, INSERT e DELETE) para o banco, mas sim, efetuar transaes que consistem de vrias estruturas de deciso, loops e outros tipos de processamento.

Comentando o nosso cdigo


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

Comentando o nosso cdigo

Por exemplo: -- Funo que calcula comisso de vendas IF sales > 0 THEN commission := sales * 0.1; END IF;

Podemos tambm colocar nosso comentrio em uma linha que contm cdigo a ser executado.
Por exemplo:

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

Comentando o nosso cdigo

Agora quando queremos comentar mltiplas linhas dentro do PL/SQL podemos usar os seguintes caracteres /* */. Tudo entre esses caracteres ignorado e tratado como um comentrio.

Por exemplo:
PROCEDURE update_balance (cust_id IN NUMBER) IS /* Procedure: update_balance Autor: Jos Silva Descrio: Procedure de Teste */

Palavras reservadas
O PL/SQL possui palavras reservadas, no uma boa idia tentar usar uma palavra reservada como uma varivel em seu cdigo. Aqui esto algumas das palavras reservadas em PL/SQL mas no a lista definitiva, verifique sua documentao atual para a lista completa.

Palavras reservadas
BEGIN END IF ELSE END IF WHILE LOOP OPEN, CLOSE, FETCH

Formatando o PL/SQL

Existe apenas um objetivo do layout eficaz de seu cdigo PL/SQL e 'Revelar e reforar a estrutura lgica do programa'. PL/SQL beneficia-se por ser uma linguagem bem estruturada, cada bloco de cdigo tem um comeo e um fim bem definidos.

Formatando o PL/SQL
Por exemplo: IF - END IF LOOP - END LOOP DO - WHILE

Criando uma estrutura lgica

Criar nossa estrutura lgica no PL/SQL bastante simples, fazemos isso usando endentao eficaz do nosso cdigo. Aqui est um pedao de cdigo no-endentado.

Criando uma estrutura lgica


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

Criando uma estrutura lgica

No trecho de cdigo anterior difcil determinar quais instrues vo em dada instruo IF. Se endentarmos cada bloco lgico do cdigo com dois espaos (algumas pessoas preferem trs) o cdigo torna-se mais legvel e compreensvel.

Exemplo de um bloco PL/SQL

Examinando alguns exemplos


Criando cdigo PL/SQL O Cdigo abaixo mostra como criar o codigo PL/SQL.

( PenDrive )

Examinando alguns exemplos


Criando um procedimento O cdigo abaixo mostra como criar um procedimento.

(PenDrive)

Examinando alguns exemplos


Criando uma funo O cdigo abaixo mostra como criar uma funo.

(PenDrive)

Examinando alguns exemplos


Executando a funo get _cust_ name a partir da SQL O cdigo abaixo mostra como executar a funo GET_CUST_NAME.

(PenDrive)

Examinando alguns exemplos


Criando um pacote O cdigo abaixo mostra como criar um pacote.

(PenDrive)

Examinando alguns exemplos


Usando PL/SQL em um gatilho de banco de dados O cdigo abaixo mostra como usar a PL/SQL em um gatilho de banco de dados.

(PenDrive)

Vous aimerez peut-être aussi