Académique Documents
Professionnel Documents
Culture Documents
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.
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.
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;
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
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.
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.
( PenDrive )
(PenDrive)
(PenDrive)
(PenDrive)
(PenDrive)
(PenDrive)