Laboratorio di PL/SQL
|
|
|
- Ortensia Ceccarelli
- 7 anni fa
- Просмотров:
Транскрипт
1 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
2 Procedure: definizione e call Una stored procedure è un blocco di codice PL/SQL dotato di un nome che viene mantenuto all interno del database (procedure/funzioni) CREATE OR REPLACE PROCEDURE nome_procedura [(parametri)] IS Definizioni; Corpo procedura; CREATE FUNCTION nome_funzione [(parametri)] RETURN tipo_dato IS Una procedura può essere richiamata utilizzando il comando call CALL nome_procedura([parametri]); 3 La procedura «Hello world» Procedura per stampare a video la stringa «Hello world» CREATE OR REPLACE PROCEDURE HELLOWORLD AS v1 varchar2(12) :='Hello World!'; DBMS_OUTPUT.PUT_LINE (v1); END HELLOWORLD; 1. Scrivere una procedura che stampi in output la stringa LABORATORIO DI BASI DATI come concatenazione di 4 variabili 4 2
3 Query con una singola riga Procedura per stampare a video il numero di prodotti CREATE OR REPLACE PROCEDURE NUMPRODOTTI AS nprod NUMBER(5,0); SELECT count(*) into nprod FROM NW.PRODUCTS ; DBMS_OUTPUT.PUT_LINE ('Numero di Prodotti:' nprod); 2. Scrivere una procedura che stampi il numero di ordini e il ricavo totale 5 Uso di condizioni Procedura per stampare il numero di ordini N gestiti da un impiegato (in input). Se N>100 stampa «high», se minore di 50 stampa «low» altrimenti «medium» create or replace PROCEDURE ProdImp(idImp number) AS nord NUMBER(5,0); SELECT count(*) into nord FROM NW.ORDERS WHERE EmployeeID=idImp ; IF (nord) > 100 THEN DBMS_OUTPUT.PUT_LINE ('High:' nord); ELSIF (nord) < 50 THEN DBMS_OUTPUT.PUT_LINE ('Low:' nord); ELSE DBMS_OUTPUT.PUT_LINE ('Medium:' nord); END IF; 3. Scrivere una procedura che classifica un cliente in base al totale acquistato (best >100K /standard/worst <5K ) 6 3
4 Gestione delle eccezioni Stampa dei dati di un cliente dato il nome. Gestire l assenza del cliente o la presenza di più di un record CREATE OR REPLACE PrintCliente(Nome VARCHAR2) AS vcliente NW_CUSTOMERS%ROWTYPE; SELECT * into vcliente FROM NW_CUSTOMERS WHERE COMPANYNAME LIKE Nome; DBMS_OUTPUT.PUT_LINE ('Cliente: ' vcliente.companyname ' ID: ' vcliente.customerid ); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('Cliente non trovato'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE ('Nome cliente non univoco'); 4. Scrivere una procedura che calcoli il totale degli ordini effettuati in una certa data. Gestire l assenza di ordini. 7 Uso di cicli Stampa N date a partire da una data iniziale CREATE OR REPLACE PROCEDURE PrintDates(iDate DATE, nprint NUMBER) IS v_counter NUMBER(2) := 0; LOOP EXIT WHEN v_counter >= nprint; DBMS_OUTPUT.PUT_LINE(TO_CHAR(iDate+v_counter,'DD FMMonth YYYY')); v_counter := v_counter + 1; --oppure for v_counter in 1.. nprint LOOP DBMS_OUTPUT.PUT_LINE(TO_CHAR(initDate+v_counter,'DD FMMonth YYYY')) 5. Scrivere una procedura che stampa il totale di N ordini a partire da IDOrd (N e IDOrd in input). Gestire con una eccezione l assenza di uno o più ordini 8 4
5 I cursori ciclo FOR Definire un cursore per visualizzare le categorie CREATE PROCEDURE PrintCategories IS CURSOR ccat IS SELECT CATEGORYID, CATEGORYNAME, DESCRIPTION FROM NW_CATEGORIES; FOR vcat IN ccat LOOP -- implicit open/fetch DBMS_OUTPUT.PUT_LINE(vCat.CATEGORYNAME ': ' vcat.description); -- Chiusura implicita 6. Definire un cursore per stampare i corrieri e quanti ordini hanno gestito 9 I cursori FETCH esplicito Definire un cursore per visualizzare le categorie CREATE PROCEDURE PrintCategories IS CURSOR ccat IS SELECT CATEGORYID, CATEGORYNAME, DESCRIPTION FROM NW_CATEGORIES ; vcat ccat%rowtype; OPEN ccat; LOOP FETCH ccat INTO vcat; EXIT WHEN ccat%notfound; DBMS_OUTPUT.PUT_LINE(vCat.CATEGORYNAME ': ' vcat.description); CLOSE ccat; 7. Definire un cursore per stampare i 10 clienti più affezionati (per numero di ordini) 10 5
6 I cursori parametrici Stampa di tutti i prodotti di una categoria (in input) CREATE PROCEDURE PrintProd (vidcat number) IS CURSOR cprod (pcat IN NW_CATEGORIES.CATEGORYID%TYPE) IS SELECT * FROM NW_PRODUCTS WHERE CATEGORYID=pCat; FOR vprod IN cprod LOOP DBMS_OUTPUT.PUT_LINE(vProd.PRODUCTID ': ' vprod.productname); 8. Data una città in input, stampare tutti i clienti residenti e per ciascuno la lista dei prodotti ordinati. 11 I cursori for UPDATE Aumenta del 10% il prezzo dei prodotti create table NW1_Products as select * from NW.Products; CREATE PROCEDURE IncPrice IS CURSOR cprod IS SELECT * FROM NW1_PRODUCTS FOR UPDATE OF UNITPRICE; FOR vprod IN cprod LOOP UPDATE NW1_PRODUCTS SET UNITPRICE=1.1*UNITPRICE WHERE CURRENT OF cprod; CREATE PROCEDURE IncPrice1 IS UPDATE NW1_PRODUCTS SET UNITPRICE=1.1*UNITPRICE; 9. Aumenta del P% il prezzo dei prodotti di un fornitore F, se il prodotto è già in riordino l aumento sarà del P/2% 12 6
7 Esercizi 10. Scrivere una procedura che visualizza il nome del cliente associato a un ordine. Gestire il caso di ordine non presente. 11. Scrivere una procedura che stampa i fornitori e l elenco dei prodotti forniti 12. Scrivere una procedura che restituisca separatamente il conteggio dei prodotti in tre fasce di prezzo date in input. 13. Scrivere una funzione che verifichi che un certo prodotto P sia presente in quantità > Q 14. Definire una tabella di appoggio: REORDER(idSupplier, idproduct, quantity, date) Scrivere una procedura che inserisce in REORDER un record per ciascun prodotto per cui la quantità è inferiore al livello di riordino 13 7
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
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
Soluzione degli esercizi PL-SQL
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
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
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
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
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
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
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
Triggers Esercitazione 1
Triggers Esercitazione 1 Nel seguente documento vengono mostrati alcuni esempi di trigger e di funzioni pgplsql. Si ricorda che i trigger vengono eseguiti al verificarsi di certe condizioni definite dal
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
σ data 15/12/2013 data 20/12/2014
Dato lo schema: Basi di Dati Prof. Alfredo Pulvirenti A.A. 2014-2015 Prova in itinere 18 dicembre 2014 (A) EVENTO(id, titolo, data, categoria, costo_partecipazione, idcatering) ORGANIZZATORE(id,idevento)
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
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
Connessione con MySQL
Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata
SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
Connessione con MySQL
Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata
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
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 è
SQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
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
La connessione ai database MySQL tramite script PHP versione 5.5
La connessione ai database MySQL tramite script PHP versione 5.5 Php è un linguaggio di scripting che estende le funzionalità del server Web, mentre MySQL è un programma server che si occupa della gestione
Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo
Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL Simona Rotolo 2 Questo documento, rivolto a chi sviluppa codice in PL/Sql, è stato redatto al fine di fornire degli standard di sviluppo che aiuteranno
SQL Esercitazione (database e tabelle) Ing. Cosimo Orlacchio
SQL Esercitazione (database e tabelle) Ing. Cosimo Orlacchio Linguaggio interattivo - SQL Structured Query Language SELECT Corso, Aula, Piano FROM Aule, Corsi WHERE Aula = N3 AND Piano="Terra" Corso Aula
Stored Procedure. Prof. Alfredo Pulvirenti
Stored Procedure Prof. Alfredo Pulvirenti Stored Procedure Programmi memorizzati nel DBMS che vengono eseguiti su esplicita richiesta degli utenti. PL/pgSQL di PostgreSQL PL/SQL di Oracle SQL PL di DB2
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
Manuale SQL. Manuale SQL - 1 -
Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,
PL/SQL. linguaggio SQL di proprietà di Oracle Lo standard SQL è esteso dai principali sistemi commerciali:
PL/SQL Cos è PL/SQL? Il linguaggio procedurale per l estensione del linguaggio SQL di proprietà di Oracle Lo standard SQL è esteso dai principali sistemi commerciali: Da Oracle con PL/SQL (e Java) Da Access
Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione
MYSQL E PHP Per poter interagire con un database in rete mediante uno script php bisogna innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione MySQL_connect(nome del host, nome utente,
Argomenti Corso SAP Online ABAP Completo
Argomenti Corso SAP Online ABAP Completo Lezione 1 Navigazione e visualizzazione tabelle o Database SAP in ambienti Oracle e SQL Server: Navigazione e visualizzazione delle tabelle SE16; Utilizzo del match-code;
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
Costrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
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
Corso di Basi di Dati/Laboratorio di Basi di Dati
Corso di Basi di Dati/Laboratorio di Basi di Dati ed. 2007-2008 Alfredo Cuzzocrea (ICAR & DEIS, Università della Calabria) 0984-494618 [email protected] http://si.deis.unical.it/~cuzzocrea SITO
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
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.
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
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
SQL: le funzioni di aggregazione
SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il
Fondamenti di Informatica e Programmazione
Fondamenti di Informatica e Programmazione Prof. G ianni D Angelo Email: [email protected] A. A. 2018/ 19 Le Origini di SQL Principali Versioni Anni 70 1986 SEQUEL Structured English QUEry Language Sviluppato
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
QL (Query Language) Alice Pavarani
QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione
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,
VBA Principali Comandi
VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,
