Visto que existe o conceito de "Base de Dados" em várias aplicações, decidi criar esta apresentação sobre Procedural Language / Structured Query Language (PL/SQL). Sendo que existem uma quantidade de informação relativamente grande, o tópico será organizado por tópicos.
PL/SQL
1º - Introdução
O PL/SQL é uma extensão da linguagem de pesquisa declarativa padrão para bases de dados, conhecida como Structured Query Language (SQL), para o SGBD Oracle da Oracle Corporation[1] . Esta extensão permite que a manipulação de dados seja incluída em unidades de programas.
---------------------------------
2º - Funcionamento
Blocos de PL/SQL são passados e processados por uma PL/SQL Engine que pode estar dentro de uma ferramenta Oracle ou do Server. A PL/SQL Engine filtra os comandos SQL e manda individualmente o comando SQL para o SQL Statement Executor no Oracle Server, que processa o PL/SQL com os dados retornados do Server.
---------------------------------
3º - Estrutura Básica
As unidades básicas (procedimentos, funções e blocos anônimos) que compõem um programa PL/SQL são blocos lógicos, que podem conter qualquer número de sub-blocos aninhados. Cada bloco lógico corresponde a um problema ou subproblema a ser resolvido. Assim, PL/SQL suporta a "abordagem dividir para conquistar" para a resolução de problemas chamado refinamento passo a passo. Um bloco (ou sub bloco) permite agrupar declarações logicamente relacionadas.
Resumindo, um bloco é a unidade básica em PL/SQL. Todos os programas em PL/SQL são compostos por blocos que podem estar localizados uns dentros dos outros. Geralmente, a função de um bloco é efectuar uma ação lógica do programa e tem a seguinte estrutura:
------------
DECLARE
(Seção para declaração de variáveis,tipos e subprogramas locais)
BEGIN
(Seção Executável, nesta seção ficam as instruções procedimentais e SQL. Esta é a única seção do bloco que é indispensável e obrigatória)
EXCEPTION
(Seção/Setor onde ficam as instruções de tratamento de erro)
END
------------
4º - Funções
Tal como em qualquer outra linguagem, é possível criar funções em Oracle.
A - Estrutura
CREATE [OR REPLACE] FUNCTION nome_função [ (parâmetro [,parâmetro]) ]
RETURN tipo_de_dados
IS | AS
BEGIN
EXCEPTION*
END [nome_função];
B - Explicação
Antes de mais, para criar uma função é necessário sinalizar que este bloco representa uma função, portanto é feito um CREATE da função (OR REPLACE serve para caso de já existir essa função e a versão mais recente ser uma actualização da mesma) assim como a declaração do seu nome e os seus parâmetros de entrada;
No caso da função devolver algo, recorre-se ao RETURN seguido do tipo de dados de saída;
IS | AS é a secção onde são feitas as declarações;
BEGIN é a secção onde se encontra o código executável;
EXCEPTION é uma secção facultativa onde é feito o tratamento de erros;
END termina a função.
C - Exemplo Prático
Queremos devolver o primeiro nome do nome completo introduzido pelo utilizador.
CREATE or replace FUNCTION EX1(NOME VARCHAR2)RETURN VARCHAR2; IS S VARCHAR2(250); BEGIN S := SUBSTR(NOME, 1, INSTR(NOME, ' ')-1); END; /
1º - Criação da função EX1 que recebe como parâmetro de entrada um dado do tipo VARCHAR2 na variável NOME.
2º - É necessário guardar o resultado do corte da nossa string. É declarada a variável S do tipo VARCHAR2 com espaço para 250 caracteres.
3º - Para cortar a string introduzida pelo utilizador, recorre-se ao SUBSTR.
4º - Conclui-se a função
---------------------------------
5º - Links Úteis
Quem estiver interessado em expandir o seu conhecimento sobre o PL/SQL pode consultar a página sobre PL/SQL do site oficial da Oracle no seguinte link: http://www.oracle.com/technetwork/database/features/plsql/index.html
---------------------------------
6º - Ferramentas
SQL Developer
Virtual Box*
NOTA: O Virtual Box não é obrigatório, serve apenas para criar uma base de dados virtual. No link disponibilizado no tópico anterior, é possível encontrar como fazer a ligação SQL Developer - Base de Dados Virtual.
---------------------------------
7º - Recursos Bibliográficos
https://pt.wikipedia.org/wiki/PL/SQL- Para ajudar no tratamento da informação sobre o conceito PL/SQL.
Acabo aqui, sendo que considero esta a informação básica necessária para entender o conceito PL/SQL. Quem quiser aprofundar ou explorar novos conhecimentos, é possível encontrar muita informação no site oficial da Oracle Corporation (link disponibilizado no tópico #5) e também me disponibilizo a responder às vossas perguntas em caso de dúvidas. Também poderei abordar outros tópicos sobre esta extensão caso tal seja pedido.