ESERCIZIO PL/SQL e PSP.

Slides:



Advertisements
Presentazioni simili
Principale limitazione di AR e SQL-92: interrogazioni ricorsive
Advertisements

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
CREAZIONE UTENTE SU ORACLE1 Pagina delle risorse: crea utente oracle ( Password:… Dora in poi, in questi lucidi,
Sicurezza e concorrenza nelle basi di dati
Stored Procedure Function Trigger
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
Dipartimento di Matematica
SQL92 e XQuery1.0 a confronto1 SQL92 E XQUERY1.0 A CONFRONTO Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso.
Analisi e Contromisure di tecniche di Sql Injection
Sviluppo servizi su rete, banche datiCorso di formazioneDicembre Strumenti via WEB per la gestione dinamica dei siti.
SQL Dati i seguenti schemi relazionali:
Maurizio Lenzerini Domenico Lembo Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2003/2004 Prima Esercitazione.
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Esercitazione.
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
Basi di dati Claudia Raibulet
LSA - Laboratorio di Sistemi Informativi Economico-Aziendali
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Progetto: memorizzazione dello stato nel database Accesso Nome Anno N. accediNegozio.html negozio Seleziona oggetto1 oggetto2 oggetto conferma.
L’algebra relazionale
sql: esempi di linguaggio sql nell'implementazione mysql
Basi di Dati e Sistemi Informativi
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
Prompt dei comandi – Windows XP In Windows XP si avvia con Start AccessoriSistema Prompt dei comandi … oppure con Start Esegui cmd.exe.
Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore.
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
SQL Developer Lanciare sqldeveloper (alias sul desktop) / c:\Oracle\sqldeveloper Associare tutti i tipi di file, se volete Tasto destro sulla spina “connection”
CREAZIONE UTENTE SU ORACLE1 Pagina delle risorse: crea utente oracle ( D’ora in poi, in questi lucidi, il vostro utente oracle.
Dynamic SQL.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Accesso a basi di dati con ASP.
SQL*PLUS Worksheet Permette di:
1 Sistemi Informativi e Servizi in Rete Università degli Studi di Brescia Facoltà di Ingegneria Parsing di documenti XML Esercizi.
Note. Dare una scadenza ai gruppi di caricamento dati Dare una scadenza ai gruppi vincoli Dire loro di fare un file solo Dire a tutti di controllare le.
FUNZIONI Dichiarazione: Definizione:
Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore.
Pagine ASP parte 3 I data base Stefano Schacherl.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Microsoft Access Maschere (II).
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
MySQL Database Management System
ARCHITETTURA DI UN’APPLICAZIONE Interfaccia Logica dell’applicazione Business rules e vincoli Gestione dati SGBD Trigger, stored procedures PL/SQL (embedded)
E 1.1 Esercizo sqlplus CREAZIONE UTENTE Connettetevi alla seguente URL: Identificatevi come: Username:
1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni.
Esercizio ODBC Roberto Pecchioli, Nicola Salotti, Massimiliano Sergenti - Gruppo Admin.
Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: –Gestione di vincoli di integrità: Per fallimento Per modifica.
Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
CREAZIONE UTENTE SU ORACLE1 Andate su //oracle1.cli.di.unipi.it/webdb Login come utente: webdb password: ******* Administer -> User Manager Riempire i.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
ALCUNE ISTRUZIONI. PER COMPILARE DA OLIVIA SU DATATOP Entrate dentro olivia e settate il vostro ambiente: ssh olivia source /etc/oracle-profile.d/oracle.csh.
Esercitazione 3 Utilizzo di un array per la visualizzazione dei dati.
ESERCIZIO PL/SQL e PSP. LO SCHEMA create table studenti ( nome VARCHAR2(15) not null, cognome VARCHAR2(15) not null, eta NUMBER );
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Matteo Ferroni –
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Progetto: memorizzazione dello stato nel database Accesso Nome Anno N. accediNegozio.html negozio Seleziona oggetto1 oggetto2 oggetto conferma.
CREAZIONE UTENTE SU ORACLE1
Progetto: memorizzazione dello stato nel database
Transcript della presentazione:

ESERCIZIO PL/SQL e PSP

LO SCHEMA create table studenti ( nome VARCHAR2(15) not null, cognome VARCHAR2(15) not null, eta NUMBER );

COPIATE I FILES Copiate i files da \\homeserver\ghelli\bdl08\esercizi\esepsp oppure da http://www.di.unipi.it/~ghelli/didattica/bdl08/esercizi/esepsp/

CREATE LO SCHEMA Caricate: Risposta: drop table studenti * createtable.sql Risposta: drop table studenti * ERRORE alla riga 1: ORA-00942: table or view does not exist Creata tabella. Creata 1 riga....

Voglio creare la pagina: <html> <head><title>Mostra studenti</title></head> <body> <h1>Elenco studenti </h1> <table> <tr> <td> <i> Cognome </i> </td> <td> <i>Nome </i> </td> </tr> <tr> <td> Carto </td> <td> Lina </td> </tr> <tr> <td> Mando </td> <td> Lino </td> </tr> <tr> <td> Aspi </td> <td> Rina </td> </tr> <tr> <td> Compi </td> <td> Tino </td> </tr> </table> </body> </html>

Ecco il codice PL/SQL create or replace PROCEDURE provapl AS begin htp.prn(' <HTML> <HEAD><TITLE>Mostra studenti </TITLE></HEAD> <BODY> <H1>Elenco studenti </H1> <TABLE> <TR> <TD> <I>Cognome</I></TD> <TD> <I>Nome </I> </TD> </TR> '); for studente in (select nome, cognome from studenti) loop htp.prn(' <TR> <TD> ' || studente.cognome ); htp.prn(' </TD> <TD> ' || studente.nome ); htp.prn(' </TD> </TR> '); end loop; htp.prn(' </TABLE> </BODY> </HTML> '); end;

Compilate provapl.sql Compilate provapl.sql Test: //oracle1.cli.di.unipi.it/pls/user.provapl

PASSARE UN PARAMETRO create or replace PROCEDURE provaparpl ( ilCognome IN VARCHAR2) AS begin htp.prn(' <HTML> <HEAD../HEAD> <BODY> <H1>Elenco studenti </H1> <TABLE> <TR> <TD> <I>Cognome</I></TD> <TD> <I>Nome </I> </TD> </TR> '); for studente in (select nome, cognome from studenti s where s.Cognome = ilCognome) loop htp.prn(' <TR> <TD> ‘ || studente.cognome ); htp.prn(' </TD> <TD> ‘ || studente.nome ); htp.prn(' </TD> </TR> '); end loop; htp.prn(' </TABLE> </BODY> </HTML> '); end;

Compilate provaparpl.sql Test: //oracle1.cli.di.unipi.it/pls/user.provaparpl Errore //or.../pls/user.provaparpl?ilCognome=Mando Successo //.../pls/user.provaparpl?ilCognome=ghelli Tabella vuota

Un modo più semplice: con un editore html: <HTML><HEAD><TITLE>Mostra studenti</TITLE></HEAD> <BODY> <H1>Elenco studenti </H1> <TABLE> <TR><TD> <I><font size=+1> Cognome </font></I> </TD> <TD> <I><font size=+1> Nome </font></I> </TD></TR> <TR> <TD> Mario </TD> <TD> Rossi </TD> </TR> <TD> Luigi </TD> <TD> Bianchi </TD> </TABLE> </BODY> </HTML>

Poi, modificate come segue <%@ page language="PL/SQL" %> <HTML><HEAD><TITLE>Mostra studenti</TITLE></HEAD> <BODY> <H1>Elenco studenti </H1> <TABLE> <TR><TD> <I><font size=+1> Cognome </font></I> </TD> <TD> <I><font size=+1> Nome </font></I> </TD></TR> <% for studente in (select nome, cognome from studenti) loop %> <TR> <TD> <%= studente.cognome %> </TD> <TD> <%= studente.nome %> </TD> </TR> <% end loop; %> </TABLE> </BODY> </HTML>

COMPILATE provapsp.psp Guardate provapsp.psp Compilatelo da una command shell (run: cmd, oppure accessoriescommand prompt) cd C:\...\esepsp loadpsp –replace –user user/pwd@oracle1.cli.di.unipi.it/oracle1 provapsp.psp "provapsp.psp": procedure "..." created. Test: oracle1.cli.di.unipi.it/pls/user.provapsp Verifica: dentro sqlplus worksheet scrivete: describe provapsp il sistema risponde: PROCEDURE provapsp

IL FILE GENERATO create or replace PROCEDURE provapsp AS BEGIN NULL; htp.prn(' <HTML> <HEAD><TITLE>Mostra studenti </TITLE></HEAD> <BODY> <H1>Elenco studenti </H1> <TABLE> <TR> <TD> <I><font size=+1> Cognome </font></I> </TD> <TD> <I><font size=+1> Nome </font></I> </TD> </TR> '); for studente in (select nome, cognome from studenti) loop htp.prn(' <TR> <TD> '); htp.prn(studente.cognome); htp.prn(' </TD> <TD> '); htp.prn(studente.nome); htp.prn(' </TD> </TR> '); end loop; htp.prn(' </TABLE> </BODY> </HTML> '); END;

PARAMETRO PSP <%@ page language="PL/SQL" %> <%@ plsql parameter="ilCognome" %> <HTML><HEAD><TITLE>Mostra studenti</TITLE></HEAD> <BODY> <H1>Elenco studenti </H1> <TABLE> <TR> <TD> <I> … </I> </TD> </TR> <% for studente in (select nome, cognome from studenti s where (ilCognome is null or s.Cognome like ilCognome)) loop %> <TR> <TD> … </TD> <% end loop; %> </TABLE> </BODY> </HTML>

COMPILATE provaparpsp.psp Guardate provaparpsp.psp Aprite provaparpsp.psp con Notepad o Wordpad Compilatelo loadpsp –replace –user user/pwd@oracle1.cli.di.unipi.it/oracle1 file.psp “....psp": procedure "..." created.

TEST //oracle1.cli.di.unipi.it/pls/user.provaparpsp Errore //or.../pls/user.provaparpsp?ilCognome=Mando Successo //.../pls/user.provaparpsp?ilCognome= Mostra il contenuto della tabella

ESERCIZI Modificate le procedure per mostrare anche l’età Costruire una pagina parametrica che, ricevuto in input ‘nomeProc’, visualizzi in una tabella il risultato della query: SELECT Line, Text FROM User_source WHERE Name = nomeProc