Xandy 46 Posted July 2, 2015 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_dadosIS | ASBEGINEXCEPTION*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;ISS VARCHAR2(250);BEGINS := 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. 1 Peralta reacted to this Share this post Link to post Share on other sites