Soluzione degli esercizi PL-SQL
|
|
|
- Marcellina Mariani
- 9 anni fa
- Просмотров:
Транскрипт
1 Soluzione degli esercizi PL-SQL Esercizio 1: Scrivere un blocco di codice che scriva in output la stringa ESAME DI SISTEMI INFORMATIVI come concatenazione di 4 variabili SET SERVEROUTPUT ON v_parte1 CONSTANT CHAR(10) := 'CORSO DI'; v_parte2 CONSTANT CHAR(25) := 'SISTEMI INFORMATIVI'; v_parte3 CONSTANT DATE := SYSDATE; v_output VARCHAR2(100); v_output := v_parte1 v_parte2 v_parte3; DBMS_OUTPUT.PUT_LINE(v_output); Esercizio 2: Scrivere un blocco di codice che, dato il codice fiscale di un fornitore restituisca il suo nome ACCEPT lv_cf CHAR v_nome Fornitori.F_NOME%TYPE; v_cf CHAR(16); v_cf:='&lv_cf'; SELECT F_NOME INTO v_nome FROM Fornitori WHERE F_CF = v_cf; DBMS_OUTPUT.PUT_LINE('Nome del fornitore:' v_nome); DBMS_OUTPUT.PUT_LINE('Fornitore non trovato: ' v_cf); Esercizio 3: Scrivere un blocco di codice che calcoli il valore totale degli ordini e indichi in output se tale valore è superiore o inferiore a 1000 v_cont INTEGER; SELECT sum(o_qta) INTO v_cont FROM ORDINI; if v_cont > 1000 then DBMS_OUTPUT.PUT_LINE('Piu'' di mille unita'' ordinate'); DBMS_OUTPUT.PUT_LINE('Meno di mille unita'' ordinate');
2 Esercizio 4: modificare il codice dell esercizio 3 in modo da ottenere il seguente output (1) Se totale < 100 Risultato scarso (2) Se 100< totale < 1000 Risultato in media (3) Se 1000 < totale Risultato buono v_cont INTEGER; SELECT sum(o_qta) INTO v_cont FROM ORDINI; if v_cont <100 then DBMS_OUTPUT.PUT_LINE('Risultato scarso'); elif v_cont <1000 then DBMS_OUTPUT.PUT_LINE('Risultato in media'); DBMS_OUTPUT.PUT_LINE('Risultato buono'); Esercizio 5: Scrivere un blocco di codice che calcoli il valore totale degli ordini effettuati in una certa data. Nel caso in cui non sia presente nessun ordine viene visualizzato il messaggio Nessun ordine presente per la data: v_valore NUMBER := 0; v_data DATE; v_data := '&sv_date'; SELECT SUM(Qta*Prezzo) INTO v_valore FROM Fatture,Dettaglio WHERE Fatture.NUMF= Detteglio.NUMF and Fatture.DataF=v_data; DBMS_OUTPUT.PUT_LINE('Il valore totale delle fatture del: ' v_data ' e'' ' v_valore); Esercizio 6: Scrivere un blocco di codice che permetta di visualizzare il nome del cliente relativo a una data fattura. Nel caso la fattura non sia presente visualizzare tramite il comando RAISE La fattura --- non è stata registrata ACCEPT sv_num CHAR; v_nome Clienti.C_NOME%TYPE; v_num Fatture.A_NUM%TYPE; v_num := &sv_num; SELECT C_NOME INTO v_nome FROM Fatture,Clienti WHERE A_CLIENTE=C_CF and A_NUM=v_num; DBMS_OUTPUT.PUT_LINE('Il cliente della fattura: ' v_num ' e'' ' v_nome); DBMS_OUTPUT.PUT_LINE('La fattura: ' v_num ' non e'' stata
3 Esercizio 7: Calcolare il valore totale delle fatture con codice da 1 a 5 se la fattura non è presente visualizzare un messaggio di errore tramite RAISE ACCEPT i_min; ACCEPT i_max; v_count integer; v_min integer; v_max integer; v_valore Dettaglio.D_Prezzo%TYPE; e_unregistered exception; v_min:=&i_min; v_max:=&i_max; FOR v_count IN 1..3 SELECT sum(d_qta*d_prezzo) INTO v_valore FROM Fatture,Dettaglio WHERE A_NUM=D_NUMF and A_NUM=v_count; if v_valore IS NULL then DBMS_OUTPUT.PUT_LINE('La fattura: ' v_count ' non e'' stata raise e_unregistered; WHEN e_unregistered THEN DBMS_OUTPUT.PUT_LINE('La fattura: ' v_count ' non e'' stata Esercizio 8: Creare un cursore che restituisca separatamente l importo di tutte le fatture CURSOR cursore_importi IS SELECT D_NUMF,sum(D_QTA*D_PREZZO) as IMPORTO FROM dettaglio group by D_NUMF; vr_importi cursore_importi%rowtype; open cursore_importi; FETCH cursore_importi into vr_importi; EXIT WHEN cursore_importi%notfound; DBMS_OUTPUT.PUT_LINE('La fattura: ' vr_importi.d_numf ' e'' di importo: ' vr_importi.importo); close cursore_importi;
4 Esercizio 9: Creare un cursore che restituisca separatamente la somma degli importi delle fatture di importo minore e maggiore di mille. CURSOR cursore_importi IS SELECT D_NUMF,sum(D_QTA*D_PREZZO) as IMPORTO FROM dettaglio group by D_NUMF; vr_importi cursore_importi%rowtype; v_totsmall NUMBER := 0; v_totbig NUMBER := 0; open cursore_importi; FETCH cursore_importi into vr_importi; EXIT WHEN cursore_importi%notfound; if vr_importi.importo < 1000 then v_totsmall := v_totsmall + vr_importi.importo; v_totbig := v_totbig + vr_importi.importo; close cursore_importi; DBMS_OUTPUT.PUT_LINE('Il totale delle fatture di importo ridotto e'': ' v_totsmall); DBMS_OUTPUT.PUT_LINE('Il totale delle fatture di importo elevato e'': ' v_totbig); Esercizio 10: Alzare del 10% il prezzo di tutti i prodotti forniti dal fornitori xxx CURSOR c_prezzi IS SELECT * FROM PRODOTTI,FORNITORI WHERE P_FORNITORE=F_CF AND F_NOME='Matteo Golfarelli' FOR UPDATE OF P_PREZZOLIST ; FOR i IN c_prezzi UPDATE PRODOTTI SET P_PREZZOLIST = P_PREZZOLIST*1.1 WHERE CURRENT OF c_prezzi; COMMIT;
5 Esercizio 11: Scrivere una funzione che verifichi se un certo prodotto p è presente in quantità > q CREATE OR REPLACE FUNCTION "VerificaQTA" (CODPROD NUMBER,QTY NUMBER) RETURN BOOLEAN IS v_qta NUMBER; Select QTADISP INTO v_qta from Prodotti where CODP=CODPROD and QTADISP<QTY; return true; return false; val := VERIFICA(1,10); Esercizio 12: Scrivere una procedura che emetta un ordine per ogni prodotto presente in quantità < 100; CREATE PROCEDURE "Riordina" (valore NUMBER) IS cursor c_prod is select * from Prodotti where qtadisp<valore; i INT := 0; select max(idord) INTO i from Ordini; for r_prod in c_prod i:=i+1; INSERT INTO Ordini VALUES(r_prod.CODP,10,i); COMMIT;
Laboratorio di PL/SQL
Laboratorio di PL/SQL Prof. Alessandra Lumini Alma Mater Studiorum - Università di Bologna Per la sintassi PL/SQL: ORACLE 11g Rel. 2 PL/SQL Language Reference 1 Schema DB 2 1 Procedure: definizione e call
PL/SQL e PLpgSQL. Audiolezione 28b. Necessità. Soluzioni. Embedded SQL. Alfio Ferrara - Stefano Montanelli. Estensioni procedurali di SQL
Audiolezione 28b Corso di Basi di Dati e Laboratorio PL/SQL e PLpgSQL Alfio Ferrara - Stefano Montanelli A.A. 2005/2006 Basi di Dati e Laboratorio 1 Estensioni procedurali di SQL Necessità Disporre di
FUNZIONI. Dichiarazione: Definizione:
FUNZIONI Dichiarazione: function nome [ (parametri) ] return tipo; Definizione: function nome [ (parametri) ] return tipo is dichiarazioni; begin comandi; exception gestori; end [nome]; Il corpo contiene
Capitolo 5. Soluzione: Soluzione in C:
Capitolo 5 Esercizio 5.1 Realizzare una procedura in un linguaggio di programmazione di alto livello che tramite SQL Embedded elimina dalla tabella DIPARTIMENTO l'elemento che ha il nome che viene fornito
Laboratorio di PL/SQL 3 Esercizi svolti e valutati
Laboratorio di PL/SQL 3 Esercizi svolti e valutati Prof. Alessandra Lumini Alma Mater Studiorum - Università di Bologna Per la sintassi PL/SQL: ORACLE 11g Rel. 2 PL/SQL Language Reference 1 Perché usare
Basi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo
Oracle PL/SQL. Motivazioni
Oracle PLSQL Motivazioni Supponiamo che nella gestione del database Azienda ci venga chiesto di apportare le modifiche necessarie a far sì che ad ogni impiegato possa essere assegnato, alla fine di ogni
Operazioni scatenanti. Nozione ed uso. Sintassi. Esempio
Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: Gestione di vincoli di integrità: Per fallimento Per modifica Auditing: Sicurezza Statistiche Valori derivati
VARIABILI, ASSEGNAZIONE, DECISIONI
LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) PAG. 1 / 6 LEZIONE-TSQL-03 PROGRAMMAZIONE (VER02) T-SQL PROGRAMMAZIONE PARTE TERZA VARIABILI, ASSEGNAZIONE, DECISIONI Tratto da Gregory A. Larsen, http://www.databasejournal.com/features/mssql/article.php/3087431/t-sql-programming-part-1---defining-variables-and-if-logic.htm
Silvia Chiusano, Paolo Garza 1
Creazione di un trigger Sviluppo ed utilizzo dei trigger in Oracle Silvia Chiusano Paolo Garza CREATE TRIGGER nome_trigger modo evento [OR evento] ON tabella [REFERENCING referenza] [] [WHEN (predicato
Soluzione esercitazione 01
Soluzione esercitazione 01 Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SolEse01.pdf Sistemi Informativi L-A Videonoleggio - caso A: tabella
Corso di. Basi di Dati I. 11. Esercitazioni in SQL: Altri esercizi
Corso di Basi di Dati 11. Esercitazioni in SQL: Altri esercizi A.A. 2016 2017 Esempio: consideriamo le seguenti tabelle Articoli(Id, Nome, Colore) Fornitori(Id, Nome, Indirizzo) Catalogo(Articolo, Fornitore,
Stored Procedure. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma
Stored Procedure Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti sulla
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
VBA Principali Comandi
VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,
Eprogram ITIS V anno Unità 4 - Il linguaggio SQL
Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Compito in classe proposto Date le seguenti tabelle: scrivi in SQL le seguenti richieste (per facilitare query complesse utilizza le viste): 1. elencare
LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE
LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE Quattro parti: Gestione dati Client-Server Logica + interfaccia Logica + interfaccia Business rules Sistema di comunicazione Logica applicativa DBMS:
LA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture
LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture L approccio tradizionale: uso di un linguaggio PLSQL 1.1
Fondamenti di Teoria delle Basi di Dati
Fondamenti di Teoria delle Basi di Dati Riccardo Torlone Parte 1: Introduzione Obiettivi La conoscenza della teoria delle basi di dati? No (o non solo) Piuttosto: Come si può affrontare un problema in
Linee guida per la programmazione di transazioni in PL/SQL
Linee guida per la programmazione di transazioni in PL/SQL Giuseppe Berio Giuseppe Berio DI - Unito 1 Esempio La transazione deve registrare l evasione di un ordine, rappresentato su più tabelle specializzate
2011 Politecnico di Torino 1
SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione
Manuale PL/Sql - Emanuele Tertulliani
Manuale PL/Sql - Emanuele Tertulliani 2017 2 Informazioni di base PL / SQL è un linguaggio procedurale estensione del linguaggio SQL SQL statement sono nativamente integrati nel linguaggio PL/SQL ed è
ESERCITAZIONE: Fornitore-Fornisce-Articolo
ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito
Basi di dati (6) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. [email protected] Argomento: T-SQL (1.
Università di Modena e Reggio Emilia Basi di dati (6) Docente: [email protected] Argomento: T-SQL (1.0) 1 Panoramica T-SQL Variabili Controllo di flusso Trattamento errori Print Operatori e funzioni
Tipi di sottoquery SQL
Tipi di sottoquery SQL È possibile specificare subquery in numerose posizioni: Con le parole chiave IN e NOT IN. Con operatori di confronto. Con le parole chiave ANY, SOME e ALL. Con le parole chiave EXISTS
Come trattare il risultato di un comando SQL (relazioni) che
USO DI SQL DA PROGRAMMI: PROBLEMI 1 Come collegarsi alla BD Come trattare gli operatori SQL Come trattare il risultato di un comando SQL (relazioni) che Come scambiare informazioni sull esito delle operazioni.
Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006
Basi di Dati Esercitazione Algebra Relazionale e SQL 15 maggio 2006 Ing. Paolo Cappellari Esercitazione Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti
Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.
PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,
PROGETTAZIONE DI DATABASE Linguaggio SQL
PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti
Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma
Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined
Interrogazioni in SQL
Interrogazioni in SQL Corso di Basi di Dati 4 dicembre 2013 1 Interrogazioni sullo schema aziendale 1. Ottenere i nomi dei dipartimenti dislocati in piú sedi. 2. Ottenere il numero di supervisori. 3. Produrre
SQL PER LA DEFINIZIONE DI BASI DI DATI
SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA
Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati
Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB
laboratorio di python
laboratorio di python definizioni di booleani, selezione ed uso degli input 13 Marzo 2019 1/32 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che non ha nessun parametro, non restituisce
Basi di dati (3) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: DML (1.
Università di Modena e Reggio Emilia Basi di dati (3) Docente: [email protected] Argomento: DML (1.0) 1 Panoramica Insert Update Delete 2 INSERT INSERT INTO [()] VALUES
Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei
IG 9CFU 25/06/10 1/12 Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei Docente Risultati Scritto Orali Fiorino martedi venerdì Mazzei Martedì pv (sito docente) Mercoledì
Oracle - PL/SQL. Oracle: Prodotti
Oracle - PL/SQL Introduzione ad Oracle PL/SQL: Elementi di base Tecniche di programmazione uso delle variabili uso dei cursori uso delle funzioni/procedure I/O Oracle: Prodotti SQL*Plus - Interprete di
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza
Triggers Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti
PL/SQL Uso di un linguaggio procedurale per un database
PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del
PL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle
Versione dei trigger e PSM di Oracle Lucidi derivati da quelli di Jeffrey D Ullman Oracle usa una variante di SQL/PSM che si chiama non consente solo di creare e memorizzare procedure e funzioni, ma puo
