Crie uma função que retorna o número de disciplinas ministradas por um professor recebendo seu SIAPE como parâmetro. Crie um procedimento que aumenta o salário de um professor em 10% ao receber seu SIAPE como parâmetro. Melhore o procedimento para receber a matrícula do funcionário e aumentar seu salário nesse valor.
O documento discute triggers, funções e procedures no SQL. Explica que triggers são disparados automaticamente por ações de inserção, atualização ou exclusão e podem manter a integridade dos dados. Funções retornam valores ou tabelas enquanto procedures executam comandos sem retorno. Joins permitem consultas entre tabelas relacionadas.
Este documento apresenta conceitos sobre SQL e stored procedures. Inicialmente descreve um exemplo de programa em Pascal que usa SQL embutido para selecionar e imprimir informações de um empregado. Em seguida, explica o conceito de cursor para permitir que linguagens de programação processem tuplas retornadas por consultas SQL. Por fim, apresenta detalhes sobre como criar e usar stored procedures em SQL/PSM e PL/SQL.
O documento resume os principais conceitos de SQL, PL/SQL e Oracle Forms, incluindo como conectar ao banco de dados, estrutura de linguagem SQL, tipos de blocos e comandos PL/SQL, e eventos e componentes visuais de Oracle Forms.
Procedimentos armazenados permitem armazenar comandos SQL no servidor para serem executados posteriormente de forma concisa. Eles podem receber parâmetros de entrada e saída, definir variáveis e lógica condicional para manipular dados de forma padronizada em diferentes aplicações. Sua sintaxe inclui nome, parâmetros, corpo com comandos SQL e pode retornar valores.
1. KrahoDB é um software de código aberto que implementa replicação multi-master no PostgreSQL através de replicação lógica.
2. Ele oferece recursos como filtragem de registros e origens, replicação seletiva de bancos de dados e tabelas, e modelo publish-subscribe.
3. A apresentação explica o funcionamento, configuração e limitações da replicação multi-master no KrahoDB, concluindo com informações sobre o projeto e perguntas.
Procedimentos armazenados são conjuntos de comandos SQL armazenados no servidor que podem ser executados por meio de uma chamada. Eles permitem padronizar tarefas, reutilizar código e passar parâmetros. Existem três tipos de parâmetros: entrada, saída e entrada/saída.
O documento discute triggers, funções e procedures no SQL. Explica que triggers são disparados automaticamente por ações de inserção, atualização ou exclusão e podem manter a integridade dos dados. Funções retornam valores ou tabelas enquanto procedures executam comandos sem retorno. Joins permitem consultas entre tabelas relacionadas.
Este documento apresenta conceitos sobre SQL e stored procedures. Inicialmente descreve um exemplo de programa em Pascal que usa SQL embutido para selecionar e imprimir informações de um empregado. Em seguida, explica o conceito de cursor para permitir que linguagens de programação processem tuplas retornadas por consultas SQL. Por fim, apresenta detalhes sobre como criar e usar stored procedures em SQL/PSM e PL/SQL.
O documento resume os principais conceitos de SQL, PL/SQL e Oracle Forms, incluindo como conectar ao banco de dados, estrutura de linguagem SQL, tipos de blocos e comandos PL/SQL, e eventos e componentes visuais de Oracle Forms.
Procedimentos armazenados permitem armazenar comandos SQL no servidor para serem executados posteriormente de forma concisa. Eles podem receber parâmetros de entrada e saída, definir variáveis e lógica condicional para manipular dados de forma padronizada em diferentes aplicações. Sua sintaxe inclui nome, parâmetros, corpo com comandos SQL e pode retornar valores.
1. KrahoDB é um software de código aberto que implementa replicação multi-master no PostgreSQL através de replicação lógica.
2. Ele oferece recursos como filtragem de registros e origens, replicação seletiva de bancos de dados e tabelas, e modelo publish-subscribe.
3. A apresentação explica o funcionamento, configuração e limitações da replicação multi-master no KrahoDB, concluindo com informações sobre o projeto e perguntas.
Procedimentos armazenados são conjuntos de comandos SQL armazenados no servidor que podem ser executados por meio de uma chamada. Eles permitem padronizar tarefas, reutilizar código e passar parâmetros. Existem três tipos de parâmetros: entrada, saída e entrada/saída.
O documento descreve estruturas de controle em PHP, incluindo estruturas de decisão como IF e SWITCH, que executam código com base em condições, e estruturas de repetição como FOR, WHILE e DO WHILE, que executam código repetidamente com base em condições.
O documento descreve recursos avançados de bancos de dados relacionais como DDL e DML. Na parte I, é relembrado o DDL e apresentadas novidades como criação de domínios, índices, gatilhos, procedimentos, funções e visões. Na parte II, o foco é o DML, relembrando consultas SQL e apresentando cláusulas como BETWEEN, JOIN, GROUP BY e funções agregadas.
O documento descreve o que são triggers no SQL, como são associados a tabelas específicas e executados automaticamente sempre que há modificações nos dados da tabela. Explica também que triggers não podem ser chamados diretamente e fazem parte da mesma transação que disparou sua execução. Fornece orientações sobre como criar triggers e como funcionam para inserções, exclusões e atualizações.
As sugestões apresentadas aqui representam o básico para uma boa governança das instâncias.
Se em sua empresa é comum realizarem customizações diretamente na instância de produção ou não há rastreabilidade entre os update sets, lamento dizer, mas vocês podem ter um grande problema em breve (se é que ainda não tiveram).
Espero que as dicas sejam úteis.
O documento discute subalgoritmos (funções) em JavaScript, explicando porque são uma boa prática ao centralizar código comum e facilitar manutenção. Descreve como declarar funções com parâmetros e valores de retorno, e como invocá-las para executar tarefas específicas.
1) O documento apresenta os conceitos de views no Oracle Database, incluindo views simples, complexas e materializadas.
2) São descritas as vantagens de utilizar views, como restringir acesso a dados e simplificar consultas complexas.
3) São explicados os tipos de views, como simples, complexas e materializadas, assim como suas características e diferenças.
O documento descreve as principais características e funcionalidades do banco de dados Firebird/InterBase, incluindo sua arquitetura, comandos, objetos como tabelas e índices, e ferramentas de administração e backup/restauração.
Este documento apresenta os principais comandos de linguagem de definição de dados em SQL para criação, alteração e eliminação de tabelas e índices, incluindo CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX e DROP INDEX. Também discute transações, privilégios e controle de acesso utilizando comandos como COMMIT, ROLLBACK, GRANT e REVOKE.
O documento descreve conceitos sobre subalgoritmos (funções) em JavaScript, incluindo:
1) As vantagens de centralizar código em funções para evitar repetições e facilitar manutenção;
2) Como declarar e invocar funções, passando parâmetros e retornando valores;
3) Que as funções executam de forma independente do código que as invocou.
O documento apresenta uma série de aulas sobre integridade de dados no SQL Server. A seção 4 discute integridade de dados, com aulas sobre constraints e triggers. As aulas abordam os tipos de integridade de dados, opções para garantir a integridade como constraints e triggers, além de detalhar constraint keys, default, check e unique constraints.
O documento fornece um resumo das principais características e novidades das versões 7.X, 8.0, 8.3 e 8.4 do PostgreSQL, incluindo detalhes sobre instalação, configuração e uso de recursos como funções PL/pgSQL, gatilhos, domínios e replicação.
Resumo linguagem c para microcontroladores PIC usando MikroCFabio Souza
O documento apresenta uma introdução à linguagem C focada no desenvolvimento para microcontroladores PIC usando a IDE MikroC. Apresenta as características da linguagem C, a estrutura básica de um programa, comentários, tipos de dados, operadores, estruturas de controle como if/else e loops.
O documento apresenta uma introdução à linguagem C focada no desenvolvimento para microcontroladores PIC usando a IDE MikroC. Aborda as características da linguagem C, a estrutura básica de um programa, comentários, tipos de dados, variáveis, operadores, estruturas de controle como if/else e loops.
[1] O documento descreve elementos básicos de algoritmos como variáveis, tipos de dados, operadores, funções e estruturas de controle.
[2] São apresentados tipos de dados como inteiro, real, caractere e lógico, e operadores aritméticos, relacionais e lógicos.
[3] Estruturas de controle como condicionais simples e compostas e repetições por condição e contagem são explicadas com exemplos de algoritmos.
O documento discute estruturas de repetição em programação, especificamente laços "para". Explica que laços são usados quando um bloco de instruções precisa ser repetido um número definido de vezes ou enquanto uma condição for verdadeira. Detalha a sintaxe do laço "para", incluindo variáveis contadora e limite, e fornece exemplos de laços "para" que contam para frente e para trás.
Este documento discute o uso de stored procedures e funções no Oracle para organizar a implementação de sistemas e garantir desempenho, modularidade e manutenção. Ele explica como criar, executar e usar parâmetros em stored procedures e funções, comparando suas funcionalidades. Também aborda tópicos como transações, saída de dados e exercícios para praticar os conceitos apresentados.
Um trigger é um procedimento armazenado executado automaticamente pelo banco de dados sempre que há modificação nos dados de uma tabela protegida, permitindo executar ações como auditoria, replicação e manutenção da integridade dos dados. Triggers podem ser criados para executar códigos PL/SQL antes ou após eventos DML em tabelas específicas.
O documento descreve estruturas de controle em PHP, incluindo estruturas de decisão como IF e SWITCH, que executam código com base em condições, e estruturas de repetição como FOR, WHILE e DO WHILE, que executam código repetidamente com base em condições.
O documento descreve recursos avançados de bancos de dados relacionais como DDL e DML. Na parte I, é relembrado o DDL e apresentadas novidades como criação de domínios, índices, gatilhos, procedimentos, funções e visões. Na parte II, o foco é o DML, relembrando consultas SQL e apresentando cláusulas como BETWEEN, JOIN, GROUP BY e funções agregadas.
O documento descreve o que são triggers no SQL, como são associados a tabelas específicas e executados automaticamente sempre que há modificações nos dados da tabela. Explica também que triggers não podem ser chamados diretamente e fazem parte da mesma transação que disparou sua execução. Fornece orientações sobre como criar triggers e como funcionam para inserções, exclusões e atualizações.
As sugestões apresentadas aqui representam o básico para uma boa governança das instâncias.
Se em sua empresa é comum realizarem customizações diretamente na instância de produção ou não há rastreabilidade entre os update sets, lamento dizer, mas vocês podem ter um grande problema em breve (se é que ainda não tiveram).
Espero que as dicas sejam úteis.
O documento discute subalgoritmos (funções) em JavaScript, explicando porque são uma boa prática ao centralizar código comum e facilitar manutenção. Descreve como declarar funções com parâmetros e valores de retorno, e como invocá-las para executar tarefas específicas.
1) O documento apresenta os conceitos de views no Oracle Database, incluindo views simples, complexas e materializadas.
2) São descritas as vantagens de utilizar views, como restringir acesso a dados e simplificar consultas complexas.
3) São explicados os tipos de views, como simples, complexas e materializadas, assim como suas características e diferenças.
O documento descreve as principais características e funcionalidades do banco de dados Firebird/InterBase, incluindo sua arquitetura, comandos, objetos como tabelas e índices, e ferramentas de administração e backup/restauração.
Este documento apresenta os principais comandos de linguagem de definição de dados em SQL para criação, alteração e eliminação de tabelas e índices, incluindo CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX e DROP INDEX. Também discute transações, privilégios e controle de acesso utilizando comandos como COMMIT, ROLLBACK, GRANT e REVOKE.
O documento descreve conceitos sobre subalgoritmos (funções) em JavaScript, incluindo:
1) As vantagens de centralizar código em funções para evitar repetições e facilitar manutenção;
2) Como declarar e invocar funções, passando parâmetros e retornando valores;
3) Que as funções executam de forma independente do código que as invocou.
O documento apresenta uma série de aulas sobre integridade de dados no SQL Server. A seção 4 discute integridade de dados, com aulas sobre constraints e triggers. As aulas abordam os tipos de integridade de dados, opções para garantir a integridade como constraints e triggers, além de detalhar constraint keys, default, check e unique constraints.
O documento fornece um resumo das principais características e novidades das versões 7.X, 8.0, 8.3 e 8.4 do PostgreSQL, incluindo detalhes sobre instalação, configuração e uso de recursos como funções PL/pgSQL, gatilhos, domínios e replicação.
Resumo linguagem c para microcontroladores PIC usando MikroCFabio Souza
O documento apresenta uma introdução à linguagem C focada no desenvolvimento para microcontroladores PIC usando a IDE MikroC. Apresenta as características da linguagem C, a estrutura básica de um programa, comentários, tipos de dados, operadores, estruturas de controle como if/else e loops.
O documento apresenta uma introdução à linguagem C focada no desenvolvimento para microcontroladores PIC usando a IDE MikroC. Aborda as características da linguagem C, a estrutura básica de um programa, comentários, tipos de dados, variáveis, operadores, estruturas de controle como if/else e loops.
[1] O documento descreve elementos básicos de algoritmos como variáveis, tipos de dados, operadores, funções e estruturas de controle.
[2] São apresentados tipos de dados como inteiro, real, caractere e lógico, e operadores aritméticos, relacionais e lógicos.
[3] Estruturas de controle como condicionais simples e compostas e repetições por condição e contagem são explicadas com exemplos de algoritmos.
O documento discute estruturas de repetição em programação, especificamente laços "para". Explica que laços são usados quando um bloco de instruções precisa ser repetido um número definido de vezes ou enquanto uma condição for verdadeira. Detalha a sintaxe do laço "para", incluindo variáveis contadora e limite, e fornece exemplos de laços "para" que contam para frente e para trás.
Este documento discute o uso de stored procedures e funções no Oracle para organizar a implementação de sistemas e garantir desempenho, modularidade e manutenção. Ele explica como criar, executar e usar parâmetros em stored procedures e funções, comparando suas funcionalidades. Também aborda tópicos como transações, saída de dados e exercícios para praticar os conceitos apresentados.
Um trigger é um procedimento armazenado executado automaticamente pelo banco de dados sempre que há modificação nos dados de uma tabela protegida, permitindo executar ações como auditoria, replicação e manutenção da integridade dos dados. Triggers podem ser criados para executar códigos PL/SQL antes ou após eventos DML em tabelas específicas.
Aplicando processamento paralelo em instruções SQL
Aula09 - PL SQL - Subprogramas.pptx
1. PL/SQL
Subprogramas
Curso de Sistemas de Informação
Disciplina de Banco de Dados – IF976
Profa. Bernadette Farias Lóscio
bfl@cin.ufpe.br
Slides preparados por
Danusa Ribeiro Cunha
(drbc@cin.ufpe.br)
2. Exercícios
• Crie um cursor que apresente os dados de um
Professor passando o SIAPE.
• Crie um cursor que exiba o nome da disciplina
e o nome do professor com SIAPE = 1234
ensina.
3. Subprogramas
• Procedimentos, funções e pacotes que são
armazenados na base de dados
• Em geral não são alterados depois de
construídos e são executados muitas vezes
• São executados explicitamente, através de
uma chamada a eles
4. Procedimentos
CREATE [OR REPLACE] PROCEDURE <nome>
[(parâmetro [{IN | OUT | IN OUT}] tipo, ....)]
{IS | AS}
<definições de variáveis>
BEGIN <corpo-do-procedimento>
END <nome>;
• Sintaxe
4
Observar que não se usa a Cláusula DECLARE
5. CREATE OR REPLACE PROCEDURE InsereCarro (
p_chassi carro.chassi%TYPE,
p_modelo carro.modelo%TYPE,
p_km_carro carro.km_carro%TYPE,
p_data_carro carro.data_carro %TYPE) AS
BEGIN
-- Inserir nova tupla na tabela carro
INSERT INTO carro (chassi, modelo, km_carro, data_carro)
VALUES (p_chassi, p_modelo, p_km_carro, p_data_carro);
COMMIT;
END InsereCarro;
/
Procedimentos
• Exemplo: Procedimento para inserir um novo
veículo na tabela Carro
5
6. Procedimentos
• Para ser chamada em outros blocos PL/SQL
InsereCarro('235-456-YWR','Celta', 100,
to_date('15/05/2002','dd/mm/yyyy'));
6
• Para ser chamada na interface de
caracteres
EXEC InsereCarro('235-456YWR','Celta', 100,
to_date('15/05/2002','dd/mm/yyyy'));
7. Funções
• São chamadas como parte de uma expressão,
retornando um valor à expressão
• No corpo da função deve aparecer um
RETURN para retornar um valor ao ambiente
RETURN <expressão>;
7
CREATE [OR REPLACE ]FUNCTION <nome>
[(parâmetro [{IN | OUT | IN OUT}] tipo, ....)]
RETURN <tipo-retorno> {IS | AS}
BEGIN <corpo-da-função>
END <nome>;
8. Funções
• Exemplo: Uma função para calcular o valor de
uma nova chave a partir da maior existente no
BD
CREATE OR REPLACE FUNCTION calcula RETURN
VARCHAR2 IS
retorno VARCHAR2(20);
BEGIN
select max(id) into retorno from categoria;
retorno := retorno +1;
RETURN retorno;
END calcula;
/
8
9. Funções
• Para ser chamada em outros blocos PL/SQL
v_valor := calcula;
Variável declarada no bloco PL
• Para ser chamada na interface de
caracteres
SELECT calcula FROM dual;
9
10. Triggers (Gatilhos)
• Procedimentos armazenados no SGBD que são
automaticamente ativados em resposta a determinadas
mudanças que ocorrem no BD
– Em geral não são modificados e executam várias vezes
– São executados implicitamente sempre que ocorre o
evento que os dispara
– Semelhantes a procedimentos, mas não podem ser locais
em relação a um bloco
– Não aceitam parâmetros
10
12. Triggers - Momento
• Corresponde ao tempo em que o trigger
deve ser executado
– BEFORE, AFTER ou INSTEAD OF
Executar ação ANTES do
evento
para o qual foi criado
Executar ação
APÓS o evento
para o qual foi criado
Executar ação
NO LUGAR do evento
para o qual foi criado
12
13. Triggers - Eventos
• Modificações no banco de dados
– No relacional (DML): operações INSERT, DELETE,
UPDATE
– No orientado-a-objetos também na chamada de
métodos
– Operações de transação: COMMIT, ABORT, PREPARE-
TO-COMMIT
– Ações de DBA: CREATE, ALTER, DROP,
SERVERERROR,LOGON,LOGOFF,STARTUP, SHUTDOWN,
GRANT, REVOKE, ...
– Eventos temporais, eventos externos
– A composição dos eventos acima
13
14. Triggers - Tipo
• Só aplicável a eventos de DML
– Linha
• Acionado para cada linha afetada
• UPDATE de atributo requer a definição do
atributo após OF
–UPDATE OF <atributo>
– Comando
• Acionado independentemente do comando
atualizar ou não uma ou mais linhas
• Não permite acesso às linhas atualizadas
14
15. Triggers - Ações
• Bloco PL/SQL executado em razão do evento
– Requer a utilização de predicados lógicos
quando o trigger tem mais de um evento DML
Predicado Significado
INSERTING Quando o trigger for
disparado por um INSERT
UPDATING Quando o trigger for
disparado por um UPDATE
DELETING Quando o trigger for
disparado por um DELETE
15
16. Triggers - Ações
• Especificação de ações
– Pode ser uma seqüência de comandos de
modificação e acesso aos dados
– Pode ser implícita, ou seja, a transação é abortada
– Pode indicar um rollback da transação
– Pode substituir a operação que causou o evento,
através da palavra-chave instead (no caso do
Oracle só para views)
16
17. Triggers
• Podem ser utilizados para
– Manter restrições de integridade complexas
– Efetuar auditoria às informações de uma tabela,
registrando as alterações efetuadas e quem as
efetuou (log seletivo)
– Indicar automaticamente a outros programas que é
necessário efetuar uma ação, quando são efetuadas
alterações em uma tabela ou BD
– Gerar valor de coluna (atributo)
– Garantir regras de negócios
– Controle de versões
– Garantir restrições de acesso
17
18. • Use gatilhos para garantir que quando uma
operação for processada, ações relacionadas
serão executadas
• Não defina gatilhos para refazer ações já
existentes no SGBD
• Limite o tamanho de gatilhos (≈ 60 linhas)
– Usar procedure
• Use gatilhos apenas para ações globais
• Não crie gatilhos recursivos
• Use gatilhos ponderadamente
18
Triggers - Recomendações
19. Ativação de Triggers
• Ativação ocorre quando comandos são executados sobre uma
tabela (DML) ou BD (DBA)
• Uso de BEFORE possibilita o acesso a valores antigos (já
existentes no BD - OLD) e novos (recém-inseridos - NEW)
• Ativando gatilhos UMA ou VÁRIAS vezes
– A opção FOR EACH ROW
• Determina se o gatilho é do tipo row trigger (linha) ou
statement trigger (comando)
– Se especificada, o gatilho é executado UMA vez
para cada tupla afetada pelo evento
– Se omitida, o gatilho é executado UMA ÚNICA vez
para cada ocorrência de evento
19
20. Ativação Condicional de Triggers
• A opção WHEN
– É usada apenas com row triggers
– Consiste em uma expressão booleana – SQL
– É avaliada para cada tupla afetada pelo evento
– Apenas se o resultado da sua avaliação for verdadeiro, a
ação é executada
– Não tem efeito sobre a execução do evento
– Não pode incluir
• Subconsultas
• Expressões em PL/SQL
• Funções definidas pelo usuário
20
21. Triggers
CREATE [OR REPLACE] TRIGGER <nome>
[BEFORE | AFTER | INSTEAD OF ] <evento>
ON <tabela>
[REFERENCING NEW AS <novo_nome>
OLD AS <antigo_nome> ]
[FOR EACH ROW [ WHEN <condição>]]
[ DECLARE [PRAGMA
AUTONOMOUS_TRANSACTION ]]
BEGIN <corpo-do-procedimento>
END <nome>;
Sintaxe
21
22. Triggers
• Cláusula INSTEAD OF
– Só para views
• Cláusula REFERENCING
– Evitar conflito com new ou old
• Cláusula FOR EACH ROW
– Trigger de linha (row trigger)
• Cláusula WHEN
Colocar condição
• Cláusula PRAGMA_AUTONOMUS
Controle de transação
22
23. Triggers
• Restrições
– No Oracle, não podem emitir instruções de
controle de transação
• COMMIT, ROLLBACK ou SAVEPOINT
– Não podem chamar nenhuma função que faça
isso
– Não podem declarar variável LONG ou LONG RAW
23
24. Triggers - Exemplo
• Na devolução do carro, alterar a quilometragem do
carro em função da quilometragem final
CREATE OR REPLACE TRIGGER altera_km
AFTER UPDATE ON locacao
FOR EACH ROW
BEGIN
IF :NEW.data_entrega IS NOT NULL THEN
UPDATE carro SET km_carro = :NEW.km_final
WHERE chassi = :NEW.chassi;
END IF;
END;
/
Variável contendo
valores inseridos
:OLD -Variável contendo
valores anteriores
24
25. Triggers - Exemplo
• Impedir inserção de valor inválido
CREATE OR REPLACE TRIGGER verifica_situacao
BEFORE INSERT OR UPDATE ON locacao
FOR EACH ROW
BEGIN
IF :NEW.km_final < :NEW.km_inicial THEN
RAISE_APPLICATION_ERROR( -20011, ‘Km_Final <
Km_Inicial’);
END IF;
END;
/
Criar código para
Mensagem de erro
25
26. Triggers
• Tabela mutante
– Em alguns triggers é preciso fazer referência a
valores da tabela que está sendo alterada
– Em geral, quando um trigger tenta examinar a
própria tabela que está sofrendo a ação
– Também pode acontecer quando examinar uma
tabela pai em um update/delete cascading
26
Um Trigger está tentando modificar ou
examinar um dado que ainda está
sendo modificado
30. Exercício
• Crie uma função que retorne quantas
disciplinas um professor ministra. A função
recebe como parâmetro o siape do professor.
• Crie um procedimento que aumenta o salário
do professor em 10% do professor com siape =
5522
• Melhore o procedimento anterior para que
receba a matricula do funcionário e aumente
esse valor.