antiblock
https://arwen2.global/

Peralta

Membro
  • Content Count

    6
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    Peralta reacted to Xandy in [Pl/sql] Procedural Language/structured Query Language   
    Boa tarde,
     
    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.