CREAZIONE UTENTE SU ORACLE1 Andate su //oracle1.cli.di.unipi.it/webdb Login come utente: webdb password: ******* Administer -> User Manager Riempire i campi User name e Password della form Create a New User, in particolare: Deafult Tablespace: USERS Temporary Tablespace: TEMP ORACLE Profile: DEFAULT Selezionare la check box WebDB Developer Premere Create
AGGIUNGERE RUOLI Cliccare su “Roles” Scrivere UNLIMITED TABLESPACE in “Role” e premere “Add” Scrivere RESOURCE in “Role” e premere “Add” Premere “Apply”
Rendere accessibile oracle1 dalla macchina windows con Net8 Assistant Crea un nome locale per la connessione via SqlPlus Worksheet al server orcl.oracle1: Start - Programs –oracle – network administration – Net8 Assistant Oppure, da command line: C:\oracle\ora90\bin\launch.exe “C:\oracle\ora90\network\tools”..\network\tools\netasst.cl –Locale – Denominazione di servizio - + (oppure: modifica – crea) –Nome di servizio di rete: orcl.isi1 (arbitrario) –Protocollo: TCP/IP –Nome host: oracle1.cli.di.unipi.it –Nome di servizio: orcl –Test...Chiudi...Fine
Rendere accessibile oracle1 dalla macchina windows copiando un file Se non funziona il Net Assistant: –Da UNIX, copiate il file ~ghelli/bdl03/ese1/tnsnames.ora nella vostra home –Da windows, copiate tnsnames.ora nella directoty C:\oracle\ora90\network\admin
Operazione immissione persona Vogliamo implementare il seguente progetto: Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore Inserisci Persona Cerca Persona Inserisci Persona OK Successo:....
Progetto di dettaglio Immissione persona Anno N. Nome Cognome Errore:.... Controllo e Immissione Errore Inserisci Persona Cerca Persona Inserisci Persona OK Successo:.... immetti(IlNome, menu.html controllaDati(IlNome, warning(IlNome,...
Progetto di dettaglio Stato 0: menu iniziale Stato 1 –Operazione: immetti –Parametri: IlNome, IlCognome, LAnnoNascita Stato 2 –Operazione: controllaDati –Parametri: IlNome, IlCognome, LAnnoNascita Stato 3 –Operazione: warning –Parametri: Messaggio errore –Parametri di giro: IlNome, IlCognome, LAnnoNascita
Per implementare Il menu iniziale: posso implementarlo come un file statico sul mio spazio web, oppure usando loadpsp Gli altri quattro stati: procedure che ricevono parametri: Immissione persona: –Definisco lo schema –Definisco la schermata iniziale –Memorizzo la procedura di immissione –Memorizzo la procedura di verifica errori –Memorizzo la procedura di visualizzazione risultato
Definizione dello schema Creo una directory ~/ese1 Copio nella directory tutti i files che trovo in Risorse del Corso->Materiale per gli esercizi->ese1 )ovvero in oppure in ~ghelli/bdl03/ese1 Mi connetto a orcl.oracle1 via SqlPlus Worksheet: –start – programs - oracle – database administration – sqlplus worksheet –Oppure, da command line: oracle/ora90/bin/oemapp.bat worksheet –Specificare nome utente di Oracle e password per orcl.oracle1; –Service: orcl.oracle1 Anziché orcl.oracle1 (oracle1.cli.di.unipi.it) posso usare oracledb.datatop (datatop.di.unipi.it)
Definizione dello schema Da SqlPlus Worksheet compilare il file create.sql: –File – open e selezionare il file –Execute (icona con fulmine) drop table Persone ERROR at line 1: ORA-00942: table or view does not exist Table created.
Verifica di funzionamento Caricare e compilare insert.sql e query.sql dalla directory ese1bdl Per effettuare modifiche lanciare wordpad o emacs, modificare i file e ricompilare
Creare il proprio spazio Web su Creare una directory ~/public_html e settare i diritti: –mkdir ~/public_html –chmod 711 ~/public_html Istruzioni più dettagliate per creare la propria home page si possono trovare a:
Creazione dello stato di immissione Creo una directory ~/public_html/ese1bdl Salvo il file menu.html nella directory Rendo menu.html visibile a tutti: –chmod 755 ~/public_html/ese1bdl/menu.html Esploro la pagina creata: –
La form in menu.html (1/2) Accedere al file menu.html con wordpad Il tag: MioAccountOracle.p_ese1.immetti è il nome della procedura attivata (schema.modulo.procedura); modificate MioAccountOracle! Un tag: specifica che alla procedura verrà passato un parametro “Cognome” inizializzato a null
La form in menu.html (2/2) Un tag: specifica che alla procedura verrà passato un parametro “Cognome” inizializzato con il valore immesso nel tag Sostituire tutti gli XXuser con MioAccountOracle
Creazione della procedura di controllo dati ed immissione La procedura è nel file ese1.sql Aprire il file con wordpad Sostituire tutti i XXuser con MioAccountOracle Compilare la procedura Provare a modificare e ricompilare la procedura
La form Genera una form con un bottone OK Quando si schiaccia OK, spedisce: – Genera una form con un bottone OK ed uno NO Quando si schiaccia NO, spedisce: –
La procedura immetti Il codice: – htp.htmlOpen; – htp.headOpen; – htp.title('Immissione dati persona'); – htp.headClose Produce: – – Immissione dati persona – Documentazione: –Didattica/Manuali in linea/Manuale Oracle WebServer
formText La procedura: –htp.formOpen(‘ Produce: – La procedura: –htp.formText('IlNome','15','15','Luigi'): Produce: – La procedura: –htp.formClose, htp.formSubmit(cname,cvalue) …
SQLPLUS: messaggi di errore Non confondere gli errori nel package (interfaccia) con quelli nel package body Comandi utili: –mostra errori: show err : mostra gli errori del body show err package p_pippo –(dove pippo non è il nome del file ma del package): mostra gli errori nel package –pausa ogni pagina: set pagesize 25 set pause on –lista le righe : l
Testare le procedure Scrivete la url: ckage.proc?par 1 =val 1 &..&par n =val n Errori più comuni: –il nome della procedura o quello dei parametri sono stati descritti male (oveflows integer datatype) –c'è qualche parametro in più o in meno –tipi sbagliati dei parametri (numeric or value error)
Verificare lo stato delle procedure -> browse -> browse MioUserName Show: packages, procedures & functions NomeProcedura In alto a destra: show object information Verificare: –Status = Valid –Source
Esercizio Aumentare la dimensione del campo per immettere l’anno Trasformate il menù iniziale in una pagina.psp Aggiungere una procedura per visualizzare tutte le persone e collegatela al bottone opportuno Modificare tale procedura in modo che riceva un cognome come parametro e visualizzi tutte le persone con quel cognome