Linguagem PL/SQL e Triggers

Tamanho: px
Começar a partir da página:

Download "Linguagem PL/SQL e Triggers"

Transcrição

1 TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA

2 Sumário Linguagem PL/SQL Tipos de dados e declaração de variáveis Execução condicional e ciclos Tratamento de erros baseado em exceções Desenvolvimento de código modular Integração com a linguagem SQL Funções predefinidas Vantagens e desvantagens Triggers Conceito e utlização de triggers Estrutura de um trigger Tipos de triggers Exemplo para autorização especial 2

3 Síntese da Linguagem PL/SQL 1 PL/SQL = Procedural Language extensions to SQL Grande gama de Tpos de dados Predefinidos ou definidos pelo programador MúlTplas alternatvas para controlar o fluxo de execução Tratamento erros baseado em exceções Exceções predefinidas ou declaradas pelo programador Desenvolvimento de código modular Integração com a linguagem SQL Comandos SQL no código PL/SQL Chamada a funções PL/SQL em comandos SQL Biblioteca de funções predefinidas data_entrega DATE; vencimento NUMBER; nome VARCHAR2(80); IF (c1) THEN... END IF; WHILE (c2) LOOP... END LOOP; EXCEPTION WHEN ZERO_DIVIDE THEN... FUNCTION dobro(n IN NUMBER) RETURN NUMBER; UPDATE empregado SET vencimento = dobro(vencimento); minúsculas := LOWER(maiúsculas); 3

4 Síntese da Linguagem PL/SQL 2 CREATE OR REPLACE PACKAGE BODY funções_simples IS FUNCTION fatorial(n IN NUMBER) RETURN NUMBER IS resultado NUMBER := 1; IF (n < 0) THEN RAISE VALUE_ERROR; END IF; WHILE (n > 1) LOOP resultado := resultado * n; n := n - 1; END LOOP; RETURN resultado; EXCEPTION WHEN VALUE_ERROR THEN RETURN 0; END fatorial; END funções_simples; 4

5 Tipos de Dados e Declaração de Variáveis 1 Tipos de dados predefinidos nome VARCHAR2(255) := NULL; letra CHAR := A ; agora DATE := SYSDATE; PI CONSTANT NUMBER(6,5) := ; Declaração de uma constante Tipos de dados definidos pelo programador SUBTYPE tipo_data_contrato IS DATE; TYPE registo_cliente IS RECORD ( número NUMBER(5), nome VARCHAR2(80)); data_contrato tipo_data_contrato; cliente registo_cliente; cliente.número := 1502; cliente.nome := Sofia ; Nota: Tpos de dados definidos pelo programador podem ser incompa^veis com a JDBC! Algumas conversões são automátcas: NUMBER VARCHAR2 ou CHAR DATE VARCHAR2 ou CHAR 5

6 Tipos de Dados e Declaração de Variáveis 2 Tipos de dados ancorados em tabelas SQL e em atributos de tabelas TYPE registo_emp1 IS RECORD ( número NUMBER(5), nome VARCHAR2(80)); TYPE registo_emp2 IS RECORD ( número emp.número%type, nome emp.nome%type); emp1 registo_emp1; emp2 registo_emp2; emp3 emp%rowtype; - - Tabela de exemplo. CREATE TABLE emp ( número NUMBER(5), nome VARCHAR2(80) ); Tipos de dados estão dependentes da definição dos atributos da tabela emp emp%rowtype é um Tpo RECORD que segue a definição da tabela emp %TYPE e %ROWTYPE facilitam a manutenção de código Ex. mudança de NUMBER(5) para NUMBER(6) no atributo número da tabela emp seria automatcamente refletda no código PL/SQL 6

7 Execução Condicional e Ciclos IF THEN ELSIF ELSE END IF IF (está_na_hora) THEN soa_alarme; END IF; IF (está_na_hora) THEN soa_alarme; ELSE está_atento; END IF; IF (hora > 20) THEN cumprimento := Boa noite ; ELSIF (hora > 12) THEN cumprimento := Boa tarde ; ELSE cumprimento := Bom dia ; END IF; LOOP EXIT WHEN END LOOP x NUMBER := 1; LOOP EXIT WHEN (x > 2); x := x + 1; END LOOP; WHILE LOOP END LOOP x NUMBER := 1; WHILE (x <= 2) LOOP x := x + 1; END LOOP; FOR IN LOOP END LOOP FOR x IN LOOP NULL; END LOOP; Variável x só visível dentro do ciclo FOR 7

8 Tratamento de Erros Baseado em Exceções 1 Exceções interrompem o fluxo normal de execução de código Execução transferida para bloco de tratamento de exceções FUNCTION divisão(dividendo IN NUMBER, divisor IN NUMBER) IS RETURN NUMBER; resultado NUMBER := 0; resultado := dividendo / divisor; RETURN resultado; Se divisor for zero, é gerada a exceção ZERO_DIVIDE, que faz o fluxo de execução saltar para o bloco de tratamento de exceções EXCEPTION WHEN ZERO_DIVIDE THEN... WHEN OTHERS THEN RAISE; Bloco de tratamento de exceções END divisão; 8

9 Tratamento de Erros Baseado em Exceções 2 Exceções não tratadas são propagadas para o bloco de código imediatamente mais abrangente IF (erro_grave) THEN RAISE exceção_a; ELSIF (erro_muito_grave) THEN RAISE exceção_b; END IF; EXCEPTION WHEN exceção_b THEN NULL; END;... EXCEPTION WHEN exceção_a THEN RAISE; END; Se uma exceção não for tratada em algum bloco de código, será propagada para o terminal do utlizador e a execução do código termina Forma de ignorar ou anular uma exceção exceção_a é tratada no bloco de código mais abrangente RAISE propaga explicitamente uma exceção 9

10 Tratamento de Erros Baseado em Exceções 3 Exceções definidas pelo programador PROCEDURE teste IS IF (erro_grave) THEN RAISE_APPLICATION_ERROR( , Erro grave! ); END IF;... END teste; Código da exceção Mensagem da exceção Códigos a podem ser usados livremente pelo programador Código e mensagem da exceção mais recente podem ser obtdos invocando as funções SQLCODE e SQLERRM Exceções predefinidas CURSOR_ALREADY_OPEN DUP_VAL_ON_INDEX INVALID_CURSOR INVALID_NUMBER LOGIN_DENIED NO_DATA_FOUND NOT_LOGGED_ON PROGRAM_ERROR STORAGE_ERROR TIMEOUT_ON_RESOURCE TOO_MANY_ROWS VALUE_ERROR ZERO_DIVIDE OTHERS 10

11 Desenvolvimento de Código Modular 1 Blocos anónimos Sem nome, sem parâmetros, e sem Tpo de retorno Execução num ponto fixo do código Variáveis locais + comandos + tratamento de exceções Procedimentos Bloco anónimo + nome + parâmetros Podem ser invocados explicitamente no código Funções Procedimentos + Tpo de retorno Pacotes Coleções de funções e procedimentos inter- relacionados 11

12 Desenvolvimento de Código Modular 2 Procedimentos e funções FUNCTION somaf(x IN NUMBER, y IN NUMBER) IS RETURN NUMBER; r NUMBER := 0; r := x + y; RETURN r; END somaf; Tipo de retorno da função No modo IN o valor do parâmetro só pode ser consultado No modo OUT o valor do parâmetro só pode ser alterado (mas não consultado) PROCEDURE somap(x IN NUMBER, y IN NUMBER, r OUT NUMBER) IS r := x + y; END somap; - - Os dois comandos seguintes são equivalentes. r := somaf(1, 1); somap(1, 1, r); Modo IN OUT permite a consulta e alteração do valor do parâmetro 12

13 Desenvolvimento de Código Modular 3 Notações posicional e nomeada DECLARE r NUMBER := 0; r := somaf(1, 1); somap(1, 1, r); r := somaf(x => 1, y => 1); r := somaf(y => 1, x => 1); END; Notação posicional: posição do argumento determina o parâmetro Notação nomeada: argumentos identficados pelo nome do parâmetro Notação nomeada torna o código mais extenso, mas também mais legível id := regista_cliente(nome => Sofia, telefone => , morada => Rua da Avenida, 1 ); 13

14 Desenvolvimento de Código Modular 4 Parâmetros com valor por omissão FUNCTION dias_que_passaram(data1 IN DATE, data2 IN DATE := SYSDATE) RETURN NUMBER RETURN (data2 - data1); END dias_que_passaram; Por omissão de argumento em data2 é assumida a data atual (fornecida pela função SYSDATE) DECLARE dias NUMBER := 0; - - O resultado é idêntico nos dois casos. dias := dias_que_passaram(to_date( , DD.MM.YY ), SYSDATE); dias := dias_que_passaram(to_date( , DD.MM.YY )); END; Comentários em PL/SQL começam com

15 Desenvolvimento de Código Modular 5 Pacotes Coleções de funções e procedimentos inter- relacionados Reforçam conceitos de encapsulamento e de reutlização Construídos em duas etapas: especificação + codificação Especificação Declarações de constantes e Tpos de dados públicos Especificações de procedimentos e funções públicas Guardada em ficheiro com extensão SPS (ex. ALUNO.SPS) Codificação Declaração de constantes e Tpos de dados privados Codificação de procedimentos e funções públicas e privadas Guardada em ficheiro com extensão SPB (ex. ALUNO.SPB) 15

16 Desenvolvimento de Código Modular 6 Especificação: ALUNO.SPS PACKAGE aluno IS - - Documentação da função1. FUNCTION função1(x IN NUMBER) RETURN NUMBER; - - Documentação da função2. FUNCTION função2(p IN NUMBER) RETURN NUMBER; END aluno; função_aux só é visível dentro do pacote aluno Codificação: ALUNO.SPB PACKAGE BODY aluno IS PI CONSTANT NUMBER := ; FUNCTION função1(x IN NUMBER) RETURN NUMBER IS - - Código da função1 END função1; FUNCTION função2(p IN NUMBER) RETURN NUMBER IS - - Código da função2 END função2; FUNCTION função_aux(x IN NUMBER) RETURN NUMBER IS - - Código da função_aux END função_aux; END aluno; 16

17 Integração com a Linguagem SQL 1 Comandos SQL no código PL/SQL PROCEDURE gere_empregado(operação IN VARCHAR2, número_emp IN empregado.número%type, nome_emp IN empregado.nome%type) IS IF (operação = DELETE ) THEN DELETE FROM empregado WHERE (número = número_emp); ELSIF (operação = INSERT ) THEN INSERT INTO empregado(número, nome) VALUES (número_emp, nome_emp); END IF; END gere_empregado; Chamada a funções PL/SQL em comandos SQL SELECT número_encomenda, dias_que_passaram(data_encomenda) FROM encomenda; UPDATE empregado SET vencimento = dobro(vencimento); Evitar nomes de parâmetros iguais aos de atributos de tabelas 17

18 Integração com a Linguagem SQL 2 Interrogações que retornam uma ocorrência DECLARE nome_empregado1 VARCHAR2(80); nome_empregado2 empregado.nome%type; - - Alternativa melhor. - - Nomes dos dois empregados são guardados em variáveis locais. SELECT nome INTO nome_empregado1 FROM empregado WHERE número = 1001; SELECT nome INTO nome_empregado2 FROM empregado WHERE número = 1002; END; Estas interrogações geram a exceção NO_DATA_FOUND DECLARE caso a ocorrência não exista empregado1 empregado%rowtype; - - Todos os dados do empregado são guardados na variável local. SELECT * INTO empregado1 FROM empregado WHERE número = 1001; END; 18

19 Integração com a Linguagem SQL 3 Interrogações que retornam múlqplas ocorrências SELECT...INTO pode devolver no máximo uma ocorrência Exceção TOO_MANY_ROWS se interrogação devolver várias ocorrências SELECT * INTO emp1 FROM empregado - - Lança exceção TOO_MANY_ROWS Para ler várias ocorrências de uma interrogação são usados cursores Resultado lido de forma iteratva, uma ocorrência de cada vez Leitura de ocorrências pode parar antes de atngido o fim do resultado Ciclo de vida de um cursor: 1. Declaração do cursor 2. Abertura do cursor 3. Leitura de ocorrências 4. Fecho do cursor 19

20 Integração com a Linguagem SQL 4 Exemplo de utlização de cursor DECLARE CURSOR c_emp IS SELECT * FROM empregado; emp empregado%rowtype; OPEN c_emp; LOOP FETCH c_emp INTO emp; EXIT WHEN c_emp%notfound;... END LOOP; CLOSE c_emp; END; 1. Declaração do cursor emp vai guardar, uma de cada vez, as ocorrências retornadas pela interrogação 2. Abertura do cursor 3. Ciclo que percorre as ocorrências do resultado da interrogação 4. Fecho do cursor 20

21 Integração com a Linguagem SQL 5 Exemplo anterior pode ser escrito de forma abreviada DECLARE CURSOR c_emp IS SELECT * FROM empregado; FOR emp IN c_emp LOOP... END LOOP; END; Gestão facilitada do cursor FOR emp IN (SELECT * FROM empregado) LOOP... END LOOP; END; OPEN, FETCH, e CLOSE executados implicitamente Forma ainda mais abreviada do mesmo ciclo FOR emp, de Tpo empregado %ROWTYPE, só é visível dentro do ciclo FOR Este Tpo de ciclo FOR só deve ser usado para percorrer todas as ocorrências do resultado da interrogação 21

22 Integração com a Linguagem SQL 6 Atributos de cursores DECLARE CURSOR c_emp IS SELECT * FROM empregado; emp empregado%rowtype; OPEN c_emp; LOOP FETCH c_emp INTO emp; IF (c_emp%found) THEN... END IF; END LOOP; CLOSE c_emp; EXCEPTION WHEN OTHERS THEN IF (c_emp%isopen) THEN CLOSE c_emp; END IF; END; Devolve TRUE se o últmo FETCH devolveu uma ocorrência TRUE se o cursor ainda estver aberto Mais atributos de cursores: %NOTFOUND e %ROWCOUNT (número de FETCHs efetuados) 22

23 Integração com a Linguagem SQL 7 Escritas na ocorrência atual de um cursor FUNCTION altera_departamento(número_emp IN empregado.número%type, novo_dep IN empregado.departamento%type) RETURN NUMBER IS CURSOR c_emp IS SELECT * FROM empregado WHERE (número = número_emp) FOR UPDATE OF departamento; aux_emp empregado%rowtype; retorno NUMBER := NULL; OPEN c_emp; FETCH c_emp INTO aux_emp; IF (c_emp%found) THEN UPDATE empregado SET departamento = novo_dep WHERE CURRENT OF c_emp; retorno := 0; ELSE retorno := - 1; END IF; CLOSE c_emp; RETURN retorno; END altera_departamento; Coluna de departamento do resultado da interrogação é para ficar reservada para escrita UPDATE afeta a ocorrência atual do cursor c_emp 23

24 Integração com a Linguagem SQL 8 Transporte de cursores CREATE OR REPLACE PACKAGE p_empregado IS TYPE ref_cursor_emp IS REF CURSOR RETURN empregado%rowtype; FUNCTION lista_empregados_com_inicial(letra CHAR) RETURN ref_cursor_emp; END p_empregado; CREATE OR REPLACE PACKAGE BODY p_empregado IS FUNCTION lista_empregados_com_inicial(letra CHAR) RETURN ref_cursor_emp IS lista_emp ref_cursor_emp; OPEN lista_emp FOR SELECT * FROM empregado WHERE nome LIKE letra % ; RETURN lista_emp; END lista_empregados_com_inicial; END p_empregado; Tipo ref_cursor_emp pode ser omitdo e substtuído pelo cursor genérico SYS_REFCURSOR Função devolve resultado da interrogação do cursor Ocorrências do resultado são lidas por quem invoca a função (ex. Java) 24

25 Integração com a Linguagem SQL 9 Funções PL/SQL podem ser usadas em comandos SQL Regras a observar Parâmetros das funções têm de ter o modo IN Tipos de dados dos parâmetros têm de ser básicos NUMBER, VARCHAR2, CHAR, (os mesmos usados em atributos de tabelas) Funções não podem alterar o conteúdo da base de dados Exemplo FUNCTION dias_que_passaram(data1 IN DATE, data2 IN DATE := SYSDATE) RETURN NUMBER RETURN (data2 - data1); END dias_que_passaram; SELECT número_encomenda, dias_que_passaram(data_encomenda) FROM encomenda; 25

26 Funções Predefinidas Escrita no ecrã DBMS_OUTPUT.PUT_LINE( Mensagem de depuração ); Sobre sequências de caracteres LOWER( ABC ) => abc LENGTH( ABC ) => 3 INSTR( ABC, B ) => 2; Sobre datas LAST_DAY( 12- JAN ) => 31- JAN NEXT_DAY( 24- SEP- 2001, Friday ) => 28- SEP SYSDATE => <data_actual> Sobre números MOD(10, 3) => 1 SQRT(4) => 2 TRUNC(1.2345, 2) => 1.23 Conversões Para ver a mensagem de depuração no SQL*Plus, executar previamente SET SERVEROUTPUT ON TO_CHAR(SYSDATE, DD.MM.YYYY HH24:MI:SS ) => :00:00 TO_DATE( , DD.MM.YYYY ) => <data_de_tipo_date> Existem muitas mais funções disponíveis em cada categoria 26

27 Vantagens e Desvantagens da PL/SQL Vantagens ProduTvidade Associação de Tpos de dados Integração com linguagem SQL Desempenho Código próximo dos dados Portabilidade Oracle disponível em diversas plataformas computacionais Comportamento transacional Em caso de exceção não tratada, código executado é anulado automatcamente Desvantagens Linguagem proprietária Só usada em SGBDs Oracle Ainda assim, no 19º lugar de popularidade do índice TIOBE Desempenho Muitos acessos a dados limitam recursos para execução de código Programação procedimental não centrada em objetos Não existe a noção de classe Necessária adaptação de diagramas UML 27

28 Conceito e UQlização de Triggers Conceito de trigger Bloco de código implicitamente executado aquando de uma operação de escrita sobre uma tabela associada INSERT, UPDATE, ou DELETE Código do trigger pode conter comandos SQL ou PL/SQL Trigger executado como uma unidade UTlização de triggers Regras de negócio complexas Cuidado com a atvação recursiva de triggers! Réplicas síncronas de tabelas Autorizações especiais Registo de eventos Escrita em tabelas Início e fim de sessões de utlizadores 28

29 Estrutura de um Trigger CREATE TRIGGER verifica_aumento_vencimento BEFORE UPDATE OF vencimento ON empregado FOR EACH ROW WHEN (new.vencimento > old.vencimento) DECLARE vencimento_do_chefe NUMBER := NULL; SELECT vencimento INTO vencimento_do_chefe FROM empregado WHERE (categoria = chefe ); Especificação do trigger Restrição de atvação (opcional) Ação do trigger (código) IF (:new.vencimento > vencimento_do_chefe) THEN RAISE_APPLICATION_ERROR( , Não pode ganhar mais que o chefe! ) END IF; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR( , A empresa não tem chefe! ); WHEN OTHERS THEN RAISE; END; 29

30 Tipos de Triggers CREATE TRIGGER verifica_aumento_vencimento BEFORE ou AFTER Qualquer combinação de INSERT OR UPDATE OR DELETE BEFORE UPDATE OF vencimento ON empregado FOR EACH ROW WHEN Se omitdo, o trigger é executado uma só vez por comando SQL Cada tabela pode ter 12 Tpos distntos de triggers (2 3 2) Se forem criados vários triggers do mesmo Tpo não há a certeza de qual será atvado primeiro Cláusula WHEN só pode ser usada em triggers com FOR EACH ROW Não pode ter interrogações nem código PL/SQL 30

31 Trigger para Autorização Especial CREATE TRIGGER em_horário_trabalho BEFORE INSERT OR UPDATE OR DELETE ON empregado DECLARE data_atual DATE := SYSDATE; hora_atual NUMBER(2) := NULL; dia_semana CHAR(3) := NULL; Tabela empregado só pode ser modificada durante o horário normal de trabalho hora_atual := TO_CHAR(data_atual, HH24 ); dia_semana := TO_CHAR(data_atual, DY ); IF (hora_atual NOT BETWEEN 8 AND 24) THEN RAISE_APPLICATION_ERROR( , Fora de horas! ); ELSIF (dia_semana IN ( SAT, SUN )) THEN RAISE_APPLICATION_ERROR( , Fim de semana! ); END IF; EXCEPTION WHEN OTHERS THEN RAISE; END; - - Exceção não é tratada e a modificação é anulada 31

32 Bibliografia Steven Feuerstein e Bill Pribyl, Oracle PL/SQL Programming, O Reilly, 5ª edição, 2009 PL/SQL Language Reference h p://techref.alunos.di.fc.ul.pt/oracle11g/appdev.112/e10472/toc.htm Advanced Applica>on Developer s Guide h p://techref.alunos.di.fc.ul.pt/oracle11g/appdev.112/e10471/toc.htm SQL Language Reference h p://techref.alunos.di.fc.ul.pt/oracle11g/server.112/e10592/toc.htm Error Messages h p://techref.alunos.di.fc.ul.pt/oracle11g/server.112/e10880/toc.htm 32

TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers

TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt Sumário Linguagem PL/SQL

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

Leia mais

Introdução ao PL/SQL

Introdução ao PL/SQL Introdução ao PL/SQL Pág.: 2/53 SUMÁRIO 1 FUNDAMENTOS... 4 1.1 O QUE É O PL/SQL?... 4 1.2 COMO É EXECUTADO UM PL/SQL NO ORACLE SERVER... 4 1.3 ESTRUTURA DE UM BLOCO PL/SQL... 5 1.4 TIPOS DE BLOCOS PL/SQL...

Leia mais

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

Monitoria GDI Aula Prática. DML + PL/SQL parte 1 Monitoria GDI Aula Prática DML + PL/SQL parte 1 DML linguagem de manipulação de dados SQL Estrutura básica de uma consulta SQL SELECT Coluna1[,Coluna2[,Coluna3[,...]]] FROM Tabela1[,Tabela2[,...]] WHERE

Leia mais

Bancos de Dados I. Integridade semântica

Bancos de Dados I. Integridade semântica Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. sergio@inf.puc-rio.br

Leia mais

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição.

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Conceitos PL/Sql Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Sintaxe CREATE SEQUENCE [schema.]sequence [INCREMENT BY

Leia mais

INTRODUÇÃO AO PL/SQL

INTRODUÇÃO AO PL/SQL INTRODUÇÃO AO PL/SQL ALEX JOSE SILVA RECIFE/2015 Índice Introdução Ao Pl/Sql...3 Entendendo a linguagem...4 Principais características da linguagem PL/SQL...5 Blocos de código...5 Declaração de variáveis...5

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE

FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE Formando: Dyckson Dyorgio Dolla Orientador: Prof. Everaldo Artur Grahl Julho / 2001 ROTEIRO DA

Leia mais

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

PL/pgSQL. Introdução. Introdução. Introdução

PL/pgSQL. Introdução. Introdução. Introdução Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/

Leia mais

Consultoria e Treinamento em Bancos de Dados Relacionais

Consultoria e Treinamento em Bancos de Dados Relacionais Tabela de conteúdos CREATE TABLE AS...1 CREATE DOMAIN...1 Funções de dados...2 Funções de data e hora...2 Funções de agregação...3 Expressões condicionais...4 CASE...4 COALESCE...4 NULLIF...4 Controle

Leia mais

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2...

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2... 1. Criar um bloco PLSQL anônimo para imprimir a tabuada abaixo: 5 X 1 = 5 5 X 2 = 10... 5 X 10 = 50 V_N CONSTANT NUMBER(2) := 5; FOR I IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(V_N ' X ' I ' = ' V_N*I); 2. Criar

Leia mais

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

Bases de Dados 2007/2008. Aula 8

Bases de Dados 2007/2008. Aula 8 Bases de Dados 2007/2008 Aula 8 1. T-SQL 2. VARIÁVEIS 3. CURSORES 4. PROCEDIMENTOS 5. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

SQL Gatilhos (Triggers)

SQL Gatilhos (Triggers) SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE

Leia mais

Oracle 10g Dicas de PL/SQL. Conteúdo

Oracle 10g Dicas de PL/SQL. Conteúdo Oracle 10g Dicas de PL/SQL Conteúdo Objetivos... 2 Comentários... 2 Declarações... 2 Conversões de variáveis... 2 DDL Criar, alterar ou apagar tabelas Create, Alter or Drop table... 3 Restrições na criação

Leia mais

Treinamento. Sumário

Treinamento. Sumário Sumário 01 Introdução ao PLSQL... 5 Objetivo do Curso... 6 Conceitos Básicos... 7 O que é PLSQL?... 7 Por que aprender a PLSQL?... 7 Blocos PLSQL... 7 Comentários... 8 Execução de Blocos... 9 Ambiente

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro ! Transact-SQL (T-SQL) Extensão ao SQL Permite controlo do fluxo de execução Permite comandos DDL (contrariamente ao PLSQL) T-SQL combina: poder de manipulação de dados

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho 1 Trabalhando com DATAS A Data é armazenada em um formato numérico interno, contendo: Século, ano, mês,

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions

Leia mais

Triggers no PostgreSQL

Triggers no PostgreSQL Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando

Leia mais

PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW, ÍNDICE e SEQUÊNCIA. Stored procedure PL/SQL. Procedimentos e Funções. Procedimento (procedure) Procedure

PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW, ÍNDICE e SEQUÊNCIA. Stored procedure PL/SQL. Procedimentos e Funções. Procedimento (procedure) Procedure PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW, ÍNDICE e SEQUÊNCIA Stored procedure Uma Stored procedure é um grupo de comandos SQL e PL/SQL que executam determinada tarefa e podem ser invocados por um nome.

Leia mais

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Restrições de Integridade Complexas

Restrições de Integridade Complexas SISTEMAS DE INFORMAÇÃO E BASES DE DADOS Restrições de Integridade Complexas António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt Sumário

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

Regras de Negócios é com o Elefante!

Regras de Negócios é com o Elefante! Regras de Negócios é com o Elefante! HARDWARE SOFTWARE Pesquisa Quantas camadas? Regras na Aplicação? Regras numa Camada Intermediária? Regras no Banco de Dados? Explain / Plano de Consulta? E as minhas

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD Oracle SGBD Oracle Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD Oracle Introdução aos SGBD Base de Dados Colecção de dados que descrevem alguma realidade Sistema de

Leia mais

FUNCTIONS EM UMA INSTRUÇÃO SQL...

FUNCTIONS EM UMA INSTRUÇÃO SQL... PL/SQL Avançado 2 1 MUTATING TABLES... 4 1.1 O QUE É MUTATING TABLE?... 4 1.2 SIMULANDO UM MUTATING TABLE... 4 1.3 QUAIS EVENTOS CAUSAM MUTATING TABLE... 5 2 CURSOR VARIABLES... 7 2.1 CARACTERÍSTICAS DAS

Leia mais

Banco de Dados Avançados Banco de Dados Ativo

Banco de Dados Avançados Banco de Dados Ativo Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

MANUAL INSTALAÇÃO WEB SERVICE

MANUAL INSTALAÇÃO WEB SERVICE MANUAL INSTALAÇÃO WEB SERVICE Recebimento de dados pelo Hospital Versão 1.1 2/9/2014 Contato suporte@gtplan.com.br Índice Introdução... 2 Requerimentos para instalação do Web Service... 2 Instalação...

Leia mais

poder de manipulação de dados do SQL com poder de processamento das lp procedimentais

poder de manipulação de dados do SQL com poder de processamento das lp procedimentais PL/SQL Extensão ao SQL Estruturada em blocos Permite controlo do fluxo de execução Permite integração entre diferentes ferramentas Oracle Não permite comandos DDL PL/SQL combina: poder de manipulação de

Leia mais

Apostila do Minicurso de PL/SQL. François Oliveira

Apostila do Minicurso de PL/SQL. François Oliveira Apostila do Minicurso de PL/SQL François Oliveira PL/SQL é uma extensão para SQL ela adiciona a linguagem procedural ao SQL do Oracle. Ela oferece modernas características como sobrecarga, coleções, tratamento

Leia mais

São 182 videoaulas de Oracle pl/sql procedures functions triggers Forms Reports

São 182 videoaulas de Oracle pl/sql procedures functions triggers Forms Reports Preço R$ 129.00 Compre aqui São 182 videoaulas de Oracle pl/sql procedures functions triggers Forms Reports - Clique aqui para ver o cronograma das aulas - Clique aqui para ver as imagens deste curso -

Leia mais

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS No Instituto Federal do Paraná tounou-se necessário o armazenamento de certas informações para controle de pessoal. Para armazenar tais dados é necessário saber que:

Leia mais

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

Formação Oracle Completa

Formação Oracle Completa PROPOSTA COMERCIAL Formação Oracle Completa Proposta PR140505 140505-01 5 de Maio de 2014 05/05/14 Dextraining Treinamentos em TI Página 1 de 14 1 A Dextraining A Dextra foi fundada em 1995, já com a missão

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Laboratório de Banco de Dados II Aula 1. Stored Procedures Laboratório de Banco de Dados II Aula 1 Stored Procedures Stored procedures Uma seqüência de comandos SQL pode ser agrupada, formando uma stored procedure A sua execução é comandada, invocando-se o nome

Leia mais

4 Usando funções simples Usando funções de uma única linha Funções de caractere Funções numéricas Funções de conversão Funções de expressão regular

4 Usando funções simples Usando funções de uma única linha Funções de caractere Funções numéricas Funções de conversão Funções de expressão regular 1 Introdução O que é um banco de dados relacional? Apresentando a linguagem SQL (Structured Query Language) Usando o SQL*Plus Iniciando o SQL*Plus Iniciando o SQL*Plus a partir da linha de comando Executando

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 Relatório Projecto de Base de Dados Parte 2 Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 1. Criação da base de dados De seguida vem escrito um script

Leia mais

Table of Contents ORACLE. ARQUITETURA CLIENTE/SERVIDOR...1...2...2 Exemplo simples de Arquitetura Cliente/Servidor baseada em Rede...

Table of Contents ORACLE. ARQUITETURA CLIENTE/SERVIDOR...1...2...2 Exemplo simples de Arquitetura Cliente/Servidor baseada em Rede... Table of Contents ARQUITETURA CLIENTE/SERVIDOR...1...2...2 Exemplo simples de Arquitetura Cliente/Servidor baseada em Rede...2 Define os privilégios de acesso e manipulação atribuidos ao usuário...21 Aba

Leia mais

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 8.0. Diogo Biazus PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,

Leia mais

Autenticação e Controle de Acesso em Forms e Reports via Oracle Internet Directory. Daniel Murara Barcia danielbarcia@hotmail.com

Autenticação e Controle de Acesso em Forms e Reports via Oracle Internet Directory. Daniel Murara Barcia danielbarcia@hotmail.com Autenticação e Controle de Acesso em Forms e Reports via Oracle Internet Directory. Daniel Murara Barcia danielbarcia@hotmail.com INTRODUÇÃO As aplicações corporativas de um importante órgão público do

Leia mais

PL/SQL. Linguagens hospedeiras

PL/SQL. Linguagens hospedeiras PL/SQL Linguagens hospedeiras Aplicações interrogar a BD tomar decisões dialogar com o utilizador etc. linguagem de programação convencional C, Cobol, Ada, Java linguagem de manipulação de dados optimizada

Leia mais

Consulting Tecnologia & Sistemas Ltda www.consulting.com.br

Consulting Tecnologia & Sistemas Ltda www.consulting.com.br Por Edson Almeida Junior Março-2006 Ultima Atualização 11/04/2006 2 1. INTRODUÇÃO Introdução Ao desenvolvermos um projeto temos em mente algumas questões para que o sistema implementando satisfaça as nossas

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

ARQUITETURA CLIENTE/SERVIDOR

ARQUITETURA CLIENTE/SERVIDOR ARQUITETURA CLIENTE/SERVIDOR PC-Cliente PC-Cliente PC-Cliente Servidor PC-Cliente PC-Cliente Impressora Exemplo simples de Arquitetura Cliente/Servidor baseada em Rede BANCOS DE DADOS BASEADOS NA ARQUITETURA

Leia mais

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO-FONTE PL/SQL

APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO-FONTE PL/SQL APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO-FONTE PL/SQL Karine Trevisani Cunha Alexander Roberto Valdameri - Orientador Roteiro Introdução Objetivos Motivação Fundamentação Teórica Desenvolvimento

Leia mais

Especificação Genérica de Gatilhos e Procedimentos Armazenados para a Geração de Históricos de Dados

Especificação Genérica de Gatilhos e Procedimentos Armazenados para a Geração de Históricos de Dados Especificação Genérica de Gatilhos e Procedimentos Armazenados para a Geração de Históricos de Dados Alex Sandro Romeo de Souza Poletto 1, Jorge Rady de Almeida Júnior 2 1 Instituto Municipal de Ensino

Leia mais

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

SQL DDL Criando Tabelas e Restrições

SQL DDL Criando Tabelas e Restrições SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 1

Bases de Dados. DML Data Manipulation Language Parte 1 Bases de Dados DML Data Manipulation Language Parte 1 DML Data Manipulation Language Diz respeito à manipulação dos dados. É utilizada para: Inserir dados numa tabela(tuplos) Remover dados de uma tabela(tuplos)

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Replicação de Dados no Interbase

Replicação de Dados no Interbase Replicação de Dados no Interbase Por Matt Hopkins, Dunstan Thomas(UK) LTD.Borland Developers Conferece 1998 - nessa época ainda não existia o componente IBReplicator Origem: http://www.ibphoenix.com/ibp_howto10.html

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia Bases de Dados 2012/2013 Restrições de Integridade em SQL Helena Galhardas Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 1 Sumário Restrições de Integridade (RIs) em SQL Chave

Leia mais

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 20. Escola Politécnica da Universidade de São Paulo

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 20. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 20 Escola Politécnica da Universidade de São Paulo 1 PROCEDIMENTOS TRIGGER STORED PROCEDURE Regras de Negócio controladas pelo SGBD SGDB Relacional dispoõe

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

SQL e PL/SQL Oracle Dicas de preparação para certificação

SQL e PL/SQL Oracle Dicas de preparação para certificação - 1 - SQL e PL/SQL Oracle Dicas de preparação para certificação Selection: para escolher linhas em uma tabela Projection: para escolher colunas em uma tabela Join: pode trazer simultaneamente dados que

Leia mais

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

PL/SQL9i BÁSICO E AVANÇADO

PL/SQL9i BÁSICO E AVANÇADO Relacional Consultoria e Sistemas Rua da Candelária, 60 10º andar Tel.: (0xx21) 2213-9191 e-mail: claudiad@relacional.com.br Copyright 1998-2003 Lúcia M. A. Fernandes Diretora de Tecnologia e Treinamento

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais