segunda-feira, 17 de fevereiro de 2014

Identificação dos diferentes tipos de blocos PL/SQL



Um bloco é uma unidade básica num programa PL/SQL.

Blocos de PL/SQL agrupam declarações e demonstrações relacionadas.

Quatro palavras reservadas que definem um bloco PL/SQL são:

 -DECLARE
 -BEGIN
 -EXCEPTION
 -END

Estas palavras reservadas são utilizadas para fazer até três secções de um bloco:

 -DECLARE:

A secção de declaração é iniciada com a palavra reservada DECLARE e termina quando começa a secção de código executável.
Esta secção é opcional e é utilizada para declarar variáveis, constantes, cursores e tipos de dados definidos pelo utilizador.

 -BEGIN:
A secção executável começa com a palavra reservada BEGIN e acaba com a palavra reservada END.
Esta é a única secção obrigatória num bloco PL/SQL e tem de conter pelo menos uma instrução.
A secção executável pode conter um número ilimitado de blocos PL/SQL.
Esta secção contém o "sumo" de um programa PL/SQL.

 -EXCEPTION:
O tratamento de exceções é utilizado para apanhar e tratar erros de run-time.
Começa com a palavra reservada EXCEPTION e termina com a palavra reservada END.
Esta secção é opcional.

As três palavras reservadas não acabam com  ponto e vírgula (;) , contudo a palavra reservada END termina.
Também todas as instruções SQL e PL/SQL dentro de um bloco terminam com ponto e vírgula.

Exemplo básico de um bloco PL/SQL seria:

 DECLARE
  v_temp NUMBER;
 BEGIN
  v_temp :=1;
 
 EXCEPTION
  WHEN OTHERS THEN

   DBMS_OUTPUT.PUT_LINE('Este bloco nunca vai criar uma exceção.');

   DBMS_OUTPUT.PUT_LINE('Mas se uma ocorrer, cairia aqui.');
 END;


Existem dois tipos gerais de blocos PL/SQL:

Blocos Anónimos (Anonymous Blocks) :

Estes são blocos PL/SQL sem nome. Podem ser executados de imediato a partir do SQL*Plus, SQL*Developer ou outra ferramenta similar.

Blocos anónimos também podem ser declarados dentro de uma aplicação onde devia de ser executado.

Não são guardados na base de dados e são passados para o motor de PL/SQL para serem compilados e executados sempre que o bloco correr.

Blocos anónimos não podem ser chamados por outros blocos PL/SQL.
Blocos anónimos podem ser interpretados por ferramentas tipo SQL*Plus ou embebidos num pré compilador Oracle ou ainda num programa OCI(Oracle Call Interface).

Um bloco anónimo é compilado cada vez que é carregado em memória em três estágios:

1. Verificação de Sintaxe (Syntaxe checking): A sintaxe PL/SQL é verificada e uma arvore de análise é gerada.
2. Verificação de Semântica (Semantic checking): Verificação de tipo e verificação adicional da arvore de análise.
3. Geração de Código (Code generation): O código compilado é criado.


Subprogramas (Subprograms) :

Um subprograma é um bloco PL/SQL com nome que é guardado na base de dados.
Por ter nome e estar disponível nas tabelas da base de dados, blocos com nome podem ser invocados repetidamente.
Subprogramas podem conter parâmetros, e os valores destes podem ser diferentes a cada invocação.
Existem dois tipos de subprogramas:
   -Procedures
   -Funções (Functions)
A principal diferença entre os dois é que as funções devolvem sempre um valor quando chamadas.

Triggers :

Um trigger é um bloco anónimo PL/SQL especial que pode ser definido para atuar antes ou depois de um comando de SQL.
Pode atuar tanto a nível de um comando como atuar sobre linhas afetadas por um comando.
Também é possível definir triggers INSTEAD OF e triggers de Sistema.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Labels

Question Dump A30-327 ACE AccessData AccessData ACE AccessData Certified Examiner AccessData FTK FTK Segurança da Informação Software (ISC)² CISSP Certified Information System Security Professional Preparação para Certificação Browsers Ferramentas Windows Análise Forense Microsoft OSINT Ouya Redes Android Malware Open Source Open Source Intelligence Sysinternals Sysinternals Live Sysinternals tools Cache Cookies Fingerprint Games Internet Explorer Mozilla Firefox Notícia Pentesting Python Script Skype Vulnerabilidades .dd .net 3.5 1Z0-144 ARPwner AccessChk v5.11 AccessEnum v1.32 Auburn Base de Dados Bypass C# CERT CISP CMS CSIP Canonical Centro de Cibersegurança China China Software and Integrated Chip Promotions Ciência Forense Computacional Cloud Creepy Cyber Security Information Sharing Partnership Código Dev Developer Disassembler Exploits FOCA Favorites Fingerprinting Organizations with Collected Archives Firefox Foundstone FoxOne Scanner Futuremark GCHQ Galleta GameInformer Gamepop Gaming Geolocalization Github Gmail Google Chrome Hardware Hash Hotmail IDS IP IPS JSON Javascript Object Notation Format Kaspersky Lab Kon-boot Live View MAC OSX MAC OSX Bypass MI5 Malware Bancário McAfee labs Microsoft Office Mozilla Foundation Msiecfexport Netflix Nirsoft Nmap Notepad++ ODA Online DisAssembler Oracle Oracle 11G Oryon C Oryon C Portable Outlook Ouya Specs PL/SQL Pasco Passwords Phishing Poisoning Programar Programação RAW RPC Republica Popular da China SQL SQLite Sandbox Sandboxie Scan Security Meeting ShadowSEC Skype Log Viewer Smartphones SmoothSec Startup Terdot The Verge Timestamp Trojan UK Ubuntu UbuntuKylin OS Userrole Virtualização WIFI WebApp Webmails Windows Bypass Windows Registry Write Blocker XML Yahoo Zeus hash-identifier iFixIt index.dat profiles.ini sqlite3 th3j35t3r wig

Posts + Vistos

Com tecnologia do Blogger.