Oracle 2 (sqlplus)
-
Upload
sergio-ronchi -
Category
Software
-
view
41 -
download
0
Transcript of Oracle 2 (sqlplus)
Oracle SQL*PLUS SQL*PLUS permette di: eseguire comandi SQL e blocchi PL/SQL Creare report e pagine web come risultato Vedere la struttura delle tabelle Eseguire azioni di amministrazione
Le basi SQLPLUS è il comando da eseguire per entrare nel programma. Viene chiesto l’inserimento
dell’Username (SCOTT), della password(TIGER) del database (orcl). Dopo la connessione si presenta il promptSQL> Per uscire: SQL>EXIT
Per ottenere l’Help su un particolare comandi di SQL*PLUSSQL>HELP <COMANDO>
Dal prompt è possibile inserire qualsiasi comando SQL, anche su più righe concludendo con il punto e virgola SQL>SELECT EMPNO, ENAME, JOB, SAL 2 FROM EMP WHERE SAL < 1500;(Si noti il ‘2’ sulla seconda linea)I comandi vengono posti in un buffer. E’ possibile rieseguire l’ultimo comando in due modi:
RUN /
Per ottenere la paginazione è opportuno settareset Pause ‘Ancora..’set PAUSE ON
Ovviamente come vedremo si dovrà settare la lunghezza della pagina
PL/SQLSQL*PLUS permette di eseguire blocchi PL/SQL:SQL> DECLARE2 x NUMBER := 100;3 BEGIN4 FOR i IN 1..10 LOOP5 IF MOD (i, 2) = 0 THEN --i is even6 INSERT INTO temp VALUES (i, x, ’i is even’);7 ELSE8 INSERT INTO temp VALUES (i, x, ’i is odd’);9 END IF;10 x := x + 100;11 END LOOP;12 END;13 .SQL> /
Informazioni sul databasePer ottenere informazioni su una tabella si può usare il comando:SQL> DESCRIBE DEPTIl comando DESCRIBE permette anche di avere informazioni su una funzione PL/SQL
Comandi di EditingLIST : permette di vedere le righe nel bufferLIST n : permette di vedere una riga del buffer, e di posizionarsi per
le operazioni seguentiCHANGE /DPTNO/DEPTNO : effettua una sostituzione nel bufferINPUT : aggiunge una riga in codaAPPEND : aggiunge del testo in codaDEL : elimina la riga listata (DEL n : elimina la riga n)EDIT : apre l’editor standard configurabile con DEFINE _EDITOR = EDT
(EDIT FILE: edita un particolare file)SAVE file : salva il buffer in un file GET file : carica un file nel bufferSTART file: esegue un file di comandi (anche @FILE)CLEAR BUFFER : svuota il bufferSPOOL file : salva i risultati su fileSPOOL OUT : invia a una stampante
Interattività
DEFINE EMPLOYEE = SMITH (Definisce una variabile)CLEAR SCREEN (Pulisce lo schermo)PAUSE Press RETURN to continue. (Aspetta che l’utente prema enter)BREAK ON &SORTCOL (Chiede l’inserimento di una variabile)L’uso di ‘&’ crea di per se una variabile chiesta interattivamente all’utente:SQL> SELECT &SORTCOL, SAL 2 FROM &MYTABLE 3 ORDER BY &SORTCOL;L’uso della doppia ‘&&’ permette di evitare il prompt per le variabili gia definite in precedenza.Se un file di comandi contenente delle variabili sostituibili, è possibile passare i parametri da riga di comando eseguendo il comando START
PROMPT Enter a title up to 30 characters long. (Produce un output per l’utente)ACCEPT MYTITLE PROMPT ’Title: ’ (legge MYTITLE con il prompt dato)
Uso avanzato
SQL> CLEAR BUFFERbuffer clearedSQL> INPUT1 PROMPT Enter a valid employee number2 PROMPT For example: 7369, 7499, 75213 ACCEPT ENUMBER NUMBER PROMPT ’Emp. no.: ’4 SELECT ENAME, MGR, JOB, SAL5 FROM EMP6 WHERE EMPNO = &ENUMBER7SQL> SAVE PROMPT2Created file PROMPT2 (Si noti la riga 3 che permette la lettura una variabile di tipo NUMBER)
Bind Variable Per visualizzare delle variabili PL/SQL in SQL*PLUS è necessario definire delle variabili in questo modo:SQL> VARIABLE id NUMBERSe poi la variabile assume un valore in un blocco PL/SQLSQL> BEGIN 2 :id := 1; 3 END; 4 /Sarà possibile stamparla in SQL*PLUS
SQL> print id
Formattazione: ColonneCOLUMN DEPTNO HEADING Department (Imposta il titolo colonna)COLUMN ENAME HEADING ’Employee|Name’ (titolo su due righe)COLUMN SAL FORMAT $99,990 (Formato numerico)COLUMN ENAME FORMAT A4 (Formato testo 4 caratteri)
(ulteriore opzione TRUCATED or WRAPPED)COLUMN COMM LIKE SAL HEADING Bonus (copia di formato)COLUMN column_name CLEAR (resetta il formato di una col)CLEAR COLUMNS (resetta il formato di tutte)
Formattazione: gruppiE’ possibile sopprimere i dupplicati in questo modo:BREAK ON DEPTNOSELECT DEPTNO, ENAME, SAL FROM EMP ORDER BY DEPTNO;Si ottiene:DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450
MILLER 130020 SMITH 800
ADAMS 110030 ALLEN 1600
JAMES 950TURNER1500WARD 1250MARTIN1250
BREAK ON DEPTNO SKIP 1 (inserisce una riga vuota in ogni gruppo)BREAK ON DEPTNO SKIP PAGE ON JOB SKIP 1 (salta una pagina ogni v olta che cambia DEPTNO e una riga ogni volta che cambia JOB)(provare questo comando per vedere effettivamente il cambio di pagina)TTITLE COL 35 FORMAT 9 ’Page:’ SQL.PNO
Totali parzialiI raggruppamenti fatti con BREAK possono permettere dei raggruppamenti:Ad esempio:break on DEPTNO skip 0 page nodup on JOB skip 1 nodupCOMPUTE SUM OF SAL ON DEPTNO
Le funzioni disponibili sono SUM, MINIMUM, MAXIMUM, AVG, STD, VARIANCE, COUNT, NUMBER
TitoliTop TitleTTITLE CENTER ’ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT’
Bottom TitleBTITLE CENTER ’COMPANY CONFIDENTIAL’
Uso AvanzatoSQL> TTITLE CENTER ’A C M E W I D G E T’ SKIP 1 -> CENTER ================ SKIP 1 LEFT ’PERSONNEL REPORT’ -> RIGHT ’SALES DEPARTMENT’ SKIP 2SQL> SET LINESIZE 60SQL> /
Dimensioni della paginaSQL> SET PAGESIZE 66 (numero di linee per pagina)SQL> SET NEWPAGE 0 (pulisce lo schermo a ogni cambio pagina)SQL> SET LINESIZE 32 (caratteri per linea)
Impostazioni inizialiE’ possibile creare un file login.sql contenente le
impsostazioni iniziali di sql*plus. Ad esempio:SET ECHO OFFPROMPT Setting SERVEROUTPUT ON...SET SERVEROUTPUT ON SIZE 1000000SET PAGESIZE 999SET LINESIZE 132DEFINE _EDITOR = /usr/bin/vi