aula4-5-subrotinas

15
Banco de Dados Banco de Dados II II César Augusto Loureiro Linguagens Procedurais

Upload: jean-lopes

Post on 14-Dec-2015

213 views

Category:

Documents


0 download

DESCRIPTION

subrotinas bandos de dados

TRANSCRIPT

Page 1: aula4-5-subrotinas

Banco de Dados Banco de Dados IIII

César Augusto Loureiro

Linguagens Procedurais

Page 2: aula4-5-subrotinas

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.

Page 3: aula4-5-subrotinas

Sub-rotinasSub-rotinas

Page 4: aula4-5-subrotinas

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

Page 5: aula4-5-subrotinas

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.

Page 6: aula4-5-subrotinas

ProcedimentosProcedimentos

Page 7: aula4-5-subrotinas

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.

Page 8: aula4-5-subrotinas

FunçõesFunções

Page 9: aula4-5-subrotinas

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.

Page 10: aula4-5-subrotinas

Gatilhos ( Triggers)Gatilhos ( Triggers)

Page 11: aula4-5-subrotinas

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*

Page 12: aula4-5-subrotinas

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';

Page 13: aula4-5-subrotinas

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;

Page 14: aula4-5-subrotinas

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' ;

Page 15: aula4-5-subrotinas

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.