-
Tecnologie delle basi di dati – Esercitazione 1 sui Trigger di Oracle
In questo articolo riporto il primo esercizio proposto durante il corso di Tecnologie delle Basi di Dati che riguarda la creazione di un semplice trigger in Oracle (la versione utilizzata è Oracle Database 10g Express Edition): il trigger riguarda un aggiornamento automatico del salario dei dipendenti nel momento in cui un dipartimento passi dal ruolo Accounting a quello Sales.Testo Esercizio 1
Si consideri la seguente base di dati
IMP ( EMPNO, DEPTNO, ENAME, JOB, SAL )
DIP ( DEPTNO, DNAME, LOC, MINSAL, MAXSAL )
Nel caso un dipartimento passi dal ruolo (attributo DNAME) di ‘ACCOUNTING’ al ruolo di ‘SALES’, il salario per tutti gli impiegati del dipartimento viene incrementato di 100. Definire un trigger che implementi tale funzionalità:Codice Trigger Esercizio 1 – Soluzione 1
CREATE TRIGGER UP_DIPARTIMENTO
AFTER UPDATE ON DIP
FOR EACH ROW
BEGIN
IF(:OLD.dname = 'ACCOUNTING' AND :NEW.dname= 'SALES') THEN
--- IL NOME DEL DIPARTIMENTO è CAMBIATO DA ACCOUNTING A SALES
---AGGIORNO IL SALARIO DEI DIPENDENTI DI QUEL DIPARTIMENTO
UPDATE IMP SET SAL=SAL+100 WHERE DEPTNO=:NEW.DEPTNO;
END IF;
END;Codice Trigger Esercizio 1 – Soluzione 2
CREATE TRIGGER UP_DIPARTIMENTO
AFTER UPDATE OF DNAME ON DIP
FOR EACH ROW
BEGIN
IF(:OLD.dname = 'ACCOUNTING' AND :NEW.dname= 'SALES') THEN
--- IL NOME DEL DIPARTIMENTO è CAMBIATO DA ACCOUNTING A SALES
---AGGIORNO IL SALARIO DEI DIPENDENTI DI QUEL DIPARTIMENTO
UPDATE IMP SET SAL=SAL+100 WHERE DEPTNO=:NEW.DEPTNO;
END IF;
END;Codice Trigger Esercizio 1 – Soluzione 3
CREATE TRIGGER UP_DIPARTIMENTO
AFTER UPDATE OF DNAME ON DIP
FOR EACH ROW
WHEN OLD.dname = 'ACCOUNTING' AND :NEW.dname= 'SALES'
BEGIN
--- IL NOME DEL DIPARTIMENTO è CAMBIATO DA ACCOUNTING A SALES
---AGGIORNO IL SALARIO DEI DIPENDENTI DI QUEL DIPARTIMENTO
UPDATE IMP SET SAL=SAL+100 WHERE DEPTNO=:NEW.DEPTNO;
END;Vediamo il contenuto delle tabelle prima di eseguire l’aggiornamento sul dipartimento
Tabella IMP

Tabella DIP

Eseguiamo la seguente query di aggiornamento:
UPDATE DIP SET DNAME =’SALES’ WHERE DNAME=’ACCOUNTING’Il contenuto delle tabelle modificate dal Trigger
Nuova Tabella IMP
Nuova Tabella DIP

Link Utili sull’installazione di Oracle Database 10g Express Edition.
E’ possibile scaricare e installare Oracle Database 10g Express Edition.
Link Utili documentazione Oracle Database 10g Express Edition
- Oracle Database Express Edition 10g documentation home page
- Oracle Database 10g documentation library
- Oracle Database Performance Tuning Guide
- The Query Optimizer
- Statistiche sugli indici, significato delle colonne nelle tabelle delle statistiche (es.
CLUSTERING_FACTOR
)
- Statistiche sulle tabelle, significato delle colonne nelle tabelle delle statistiche (es.
EMPTY_BLOCKS
)
Lascia un Commento
Link consigliati
Categorie
- Actionscript 3 – Trucchi e Segreti (9)
- Algoritmi e Programmazione Avanzata (3)
- Analisi di Basi di Dati (10)
- Assembler 8086 (2)
- Base di dati (1)
- Codifiche (1)
- Data Mining (4)
- E-learning (4)
- Flash (9)
- Grafica 3D (1)
- HTML5 (1)
- Intelligenza Artificiale (1)
- Lego Mindstorms NXT (6)
- Linguaggio C++ (1)
- Linux (8)
- Microsoft Office (7)
- news (1)
- Objective C (4)
- PHP (9)
- Progetti Politecnico (11)
- Programmazione ad Oggetti (Java) (1)
- Programmazione in C (16)
- Realtà Aumentata (1)
- Red5 (6)
- Seminari (3)
- SEO (3)
- Server (3)
- Sicurezza dei Sistemi Informatici (17)
- Siti Amici (1)
- Strategia e Innovazione (19)
- Tecnologie delle Basi di Dati (2)
- Utilità (11)
- web design (2)
Articoli Recenti
- Come creare una UILabel da codice senza utilizzare Interface Builder in Objective-c
- Tool per testare il codice PHP online
- LMS – An Elearning Platform with Online activation and 5 free users forever
- LMS – Piattaforma di E-learning gratis per i primi 5 utenti….
- Gli Active Record di Yii: un design pattern per rappresentare le tabelle del database in un modo orientato agli oggetti.
- Come creare un pulsante dinamicamente in Objective-c – Iphone SDK
- Actionscript 3 versus Objective-C: vediamo le principali differenze a livello di sintassi del codice
- Firewall: IP Tables un esempio su Linux
- Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
- NetBeans IDE: JVM Creation Failed vediamo come risolverlo
- I sistemi esperti basati su regole
- I protocolli in Objective C sono molto simili alle interfacce di Java
- 19 – Strategia e Innovazione – Benefici della diversificazione: matrice BGC
- 18 – Strategia e Innovazione – Scelta del tempo di ingresso nel mercato – I FIRST MOVER
- 17 – Strategia e Innovazione – I mercati “WINNER TAKE ALL”
Tags
Acrobat Writer Gratis
Actionscript 3
addEventListener
API disegno flash
appunti del corso di strategia e innovazione
AS3
Audio Streaming
Cancellare un'immagine da un PDF
cicli ed iterazioni in c
context free grammar
esercitazioni svolte in linguaggio c
esercitazioni svolte sui trigger oracle
esercizi svolti assembler 8086
eventi in actionscript 2
eventi in actionscript 3
file system linux
Formati Video HTML5
forward-chaining
gestione della memoria dinamica in c
gestione delle liste in c
getURL
Guida Visual Basic For Application - VBA
HTML5
indicizzare un sito sui motori
jflex
LEGO MINDSTORMS NXT 2.0 - BLUETOOTH - C#
linguaggi e traduttori
Modificare un file PDF
moveTo
navigateToURL
Oracle Database 10g Express Edition
Primo programma in c
programmare robot
root
scelte ed alternative in c
setChildIndex
streaming real time
swapDepths
TextField buttonMode
vettori in c
video in as2
video in as3
Video Streaming
XML
XMLList
