aula4-5-subrotinas
DESCRIPTION
subrotinas bandos de dadosTRANSCRIPT
Banco de Dados Banco de Dados IIII
César Augusto Loureiro
Linguagens Procedurais
Sub-rotinasSub-rotinas
Uma subrotina é um módulo de Uma subrotina é um módulo de programa executado para uma programa executado para uma determinada finalidade e geralmente determinada finalidade e geralmente possui um nome, pode receber possui um nome, pode receber parâmetros e, conforme o caso, parâmetros e, conforme o caso, devolver valores. Todas as linguagens devolver valores. Todas as linguagens de programação atuais (estruturadas de programação atuais (estruturadas ou orientadas a objetos) suportam esse ou orientadas a objetos) suportam esse conceito.conceito.
Sub-rotinasSub-rotinas
Sub-rotinasSub-rotinas
Existem 3 tipos básicos de Existem 3 tipos básicos de subrotinas de banco de dados: subrotinas de banco de dados:
Os procedimentosOs procedimentos As funçõesAs funções Os GatilhosOs Gatilhos
ProcedimentosProcedimentos
Também chamados de procedimentos armazenados (stored procedures), representam porções de código SQL e não SQL que ficam armazenados de forma compilada no catálogo do SGBD e são ativados explicitamente por aplicações, triggers ou outras rotinas. Como nas linguagens tradicionais de programação, um procedimento realiza um processamento qualquer e não devolve valor algum em seu final.
ProcedimentosProcedimentos
FunçõesFunções
As funções contêm porções de código SQL As funções contêm porções de código SQL e não SQL. e não SQL.
Ficam armazenadas de forma compilada no Ficam armazenadas de forma compilada no catálogo do SGBD e são ativadas catálogo do SGBD e são ativadas explicitamente explicitamente por aplicações, triggers ou por aplicações, triggers ou outras rotinas. A diferença básica entre o outras rotinas. A diferença básica entre o procedimento e a função é que uma função, procedimento e a função é que uma função, ao realizar um processamento, produz um ao realizar um processamento, produz um valor que é devolvido (retornado) em seu valor que é devolvido (retornado) em seu final.final.
FunçõesFunções
Gatilhos ( Triggers)Gatilhos ( Triggers)
Um gatilho (ou Um gatilho (ou triggertrigger) é uma porção de ) é uma porção de código composto por instruções SQL e não-código composto por instruções SQL e não-SQL que ficam armazenados no catálogo do SQL que ficam armazenados no catálogo do SGBD e que são ativados automaticamente SGBD e que são ativados automaticamente pelo gerenciador de banco de dados quando pelo gerenciador de banco de dados quando um determinado evento ocorre. Em um determinado evento ocorre. Em princípio um gatilho poderia ser entendido princípio um gatilho poderia ser entendido como uma procedure ativada como uma procedure ativada implicitamente implicitamente pelo SGBD.pelo SGBD.
Gatilhos ( Triggers)Gatilhos ( Triggers)
Formatar a largura de uma linha:Formatar a largura de uma linha: SET LINESIZE 800SET LINESIZE 800
Formatar a largura de uma coluna Formatar a largura de uma coluna chamada NOME em 20 caracteres:chamada NOME em 20 caracteres: COLUMN nome FORMAT A20COLUMN nome FORMAT A20
Formatar a quantidade de linhas de Formatar a quantidade de linhas de uma pagina:uma pagina: SET PAGESIZE 50SET PAGESIZE 50
Dicas SqlPlus*Dicas SqlPlus*
Oracle e SubrotinasOracle e Subrotinas
Para consultar os nomes das subrotinas Para consultar os nomes das subrotinas já criadas no SGBD:já criadas no SGBD:
SELECT object_name FROM SELECT object_name FROM user_objects WHERE object_type = user_objects WHERE object_type = 'PROCEDURE' ;'PROCEDURE' ;
ouou
object_type = 'FUNCTION' ;object_type = 'FUNCTION' ;
ouou
object_type = 'TRIGGER';object_type = 'TRIGGER';
Oracle e SubrotinasOracle e Subrotinas
Para visualizar todos os objetos Para visualizar todos os objetos criados no banco de dados:criados no banco de dados:
SELECT object_type, object_name SELECT object_type, object_name FROM user_objects;FROM user_objects;
Oracle e SubrotinasOracle e Subrotinas
Para visualizar o código fonte Para visualizar o código fonte referente a uma subrotina já criada no referente a uma subrotina já criada no SGBD:SGBD:
SELECT text FROM user_source SELECT text FROM user_source WHERE name = <nome_rotina> ;WHERE name = <nome_rotina> ;
Ex: SELECT text FROM user_source Ex: SELECT text FROM user_source WHERE name = 'CalcDobro' ;WHERE name = 'CalcDobro' ;
PL/SQLPL/SQL
Como já sabemos, a SQL ( Structured Como já sabemos, a SQL ( Structured Query Language ), é uma linguagem Query Language ), é uma linguagem interativa que tem por objetivo pesquisar, interativa que tem por objetivo pesquisar, recuperar e formatar dados de forma recuperar e formatar dados de forma simples, através de relatórios em tela ou simples, através de relatórios em tela ou impressora, usando frases simples tiradas impressora, usando frases simples tiradas do vocabulário corrente.do vocabulário corrente.