SlideShare a Scribd company logo
1 of 14
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 prompt
SQL> Per uscire: SQL>EXIT
 Per ottenere l’Help su un particolare comandi di SQL*PLUS
SQL>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 settare
set Pause ‘Ancora..’
set PAUSE ON
Ovviamente come vedremo si dovrà settare la lunghezza della pagina
PL/SQL
SQL*PLUS permette di eseguire blocchi PL/SQL:
SQL> DECLARE
2 x NUMBER := 100;
3 BEGIN
4 FOR i IN 1..10 LOOP
5 IF MOD (i, 2) = 0 THEN --i is even
6 INSERT INTO temp VALUES (i, x, ’i is
even’);
7 ELSE
8 INSERT INTO temp VALUES (i, x, ’i is
odd’);
9 END IF;
10 x := x + 100;
11 END LOOP;
12 END;
13 .
Informazioni sul database
Per ottenere informazioni su una tabella si può usare il comando:
SQL> DESCRIBE DEPT
Il comando DESCRIBE permette anche di avere informazioni su una funzione PL/SQL
Comandi di Editing
LIST : permette di vedere le righe nel buffer
LIST n : permette di vedere una riga del buffer, e di posizionarsi per
le operazioni seguenti
CHANGE /DPTNO/DEPTNO : effettua una sostituzione nel buffer
INPUT : aggiunge una riga in coda
APPEND : aggiunge del testo in coda
DEL : 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 buffer
START file: esegue un file di comandi (anche @FILE)
CLEAR BUFFER : svuota il buffer
SPOOL file : salva i risultati su file
SPOOL 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)
Uso avanzato
SQL> CLEAR BUFFER
buffer cleared
SQL> INPUT
1 PROMPT Enter a valid employee number
2 PROMPT For example: 7369, 7499, 7521
3 ACCEPT ENUMBER NUMBER PROMPT ’Emp. no.: ’
4 SELECT ENAME, MGR, JOB, SAL
5 FROM EMP
6 WHERE EMPNO = &ENUMBER
7
SQL> SAVE PROMPT2
Created 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 NUMBER
Se poi la variabile assume un valore in un blocco PL/SQL
SQL> BEGIN
2 :id := 1;
3 END;
4 /
Sarà possibile stamparla in SQL*PLUS
SQL> print id
Formattazione: Colonne
COLUMN 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: gruppi
E’ possibile sopprimere i dupplicati in questo modo:
BREAK ON DEPTNO
SELECT DEPTNO, ENAME, SAL FROM EMP ORDER BY DEPTNO;
Si ottiene:
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
30 ALLEN 1600
JAMES 950
TURNER1500
WARD 1250
MARTIN1250
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 parziali
I raggruppamenti fatti con BREAK possono permettere dei
raggruppamenti:
Ad esempio:
break on DEPTNO skip 0 page nodup on JOB skip 1
nodup
COMPUTE SUM OF SAL ON DEPTNO
Le funzioni disponibili sono SUM, MINIMUM, MAXIMUM,
AVG, STD, VARIANCE, COUNT, NUMBER
Titoli
Top Title
TTITLE CENTER ’ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT’
Bottom Title
BTITLE CENTER ’COMPANY CONFIDENTIAL’
Uso Avanzato
SQL> TTITLE CENTER ’A C M E W I D G E T’ SKIP 1 -
> CENTER ================ SKIP 1 LEFT ’PERSONNEL REPORT’ -
> RIGHT ’SALES DEPARTMENT’ SKIP 2
SQL> SET LINESIZE 60
SQL> /
Dimensioni della pagina
SQL> 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 iniziali
E’ possibile creare un file login.sql contenente le
impsostazioni iniziali di sql*plus. Ad esempio:
SET ECHO OFF
PROMPT Setting SERVEROUTPUT ON...
SET SERVEROUTPUT ON SIZE 1000000
SET PAGESIZE 999
SET LINESIZE 132
DEFINE _EDITOR = /usr/bin/vi

More Related Content

Viewers also liked (14)

Sql 3
Sql 3Sql 3
Sql 3
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
MySQL
MySQLMySQL
MySQL
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
Java lezione 19
Java lezione 19Java lezione 19
Java lezione 19
 
Oracle PL sql 3
Oracle PL sql 3Oracle PL sql 3
Oracle PL sql 3
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
 

Similar to Oracle 2 (sqlplus)

Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...
Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...
Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...santi caltabiano
 
IBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerIBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerRiccardo De Mattia
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.pptssuserf7962d
 
Php mysql e cms
Php mysql e cmsPhp mysql e cms
Php mysql e cmsorestJump
 
Sistemi di Build Alternativi
Sistemi di Build AlternativiSistemi di Build Alternativi
Sistemi di Build AlternativiDario Bertini
 
PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010Enrico Pirozzi
 

Similar to Oracle 2 (sqlplus) (13)

Basi Di Dati 03
Basi Di Dati 03Basi Di Dati 03
Basi Di Dati 03
 
Oracle PL sql 1
Oracle PL sql 1Oracle PL sql 1
Oracle PL sql 1
 
Sql stored procedures
Sql stored proceduresSql stored procedures
Sql stored procedures
 
As it e icloud
As it e icloudAs it e icloud
As it e icloud
 
Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...
Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...
Come eliminare un detault constraint sconosciuto [sql server][santi caltabian...
 
IBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerIBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL Server
 
primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.ppt
 
Basi Di Dati 05
Basi Di Dati 05Basi Di Dati 05
Basi Di Dati 05
 
SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
 
Php mysql e cms
Php mysql e cmsPhp mysql e cms
Php mysql e cms
 
Sistemi di Build Alternativi
Sistemi di Build AlternativiSistemi di Build Alternativi
Sistemi di Build Alternativi
 
PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010PostgreSQL: Partitioning Ap-Camp 2010
PostgreSQL: Partitioning Ap-Camp 2010
 

More from Sergio Ronchi (13)

Java lezione 18
Java lezione 18Java lezione 18
Java lezione 18
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
 
Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
Java lezione 3
Java lezione 3Java lezione 3
Java lezione 3
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
 
Oracle PLSql 4
Oracle PLSql 4Oracle PLSql 4
Oracle PLSql 4
 
Oracle 1
Oracle 1Oracle 1
Oracle 1
 
Sql 5
Sql 5Sql 5
Sql 5
 

Oracle 2 (sqlplus)

  • 1. 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
  • 2. 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 prompt SQL> Per uscire: SQL>EXIT  Per ottenere l’Help su un particolare comandi di SQL*PLUS SQL>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 settare set Pause ‘Ancora..’ set PAUSE ON Ovviamente come vedremo si dovrà settare la lunghezza della pagina
  • 3. PL/SQL SQL*PLUS permette di eseguire blocchi PL/SQL: SQL> DECLARE 2 x NUMBER := 100; 3 BEGIN 4 FOR i IN 1..10 LOOP 5 IF MOD (i, 2) = 0 THEN --i is even 6 INSERT INTO temp VALUES (i, x, ’i is even’); 7 ELSE 8 INSERT INTO temp VALUES (i, x, ’i is odd’); 9 END IF; 10 x := x + 100; 11 END LOOP; 12 END; 13 .
  • 4. Informazioni sul database Per ottenere informazioni su una tabella si può usare il comando: SQL> DESCRIBE DEPT Il comando DESCRIBE permette anche di avere informazioni su una funzione PL/SQL
  • 5. Comandi di Editing LIST : permette di vedere le righe nel buffer LIST n : permette di vedere una riga del buffer, e di posizionarsi per le operazioni seguenti CHANGE /DPTNO/DEPTNO : effettua una sostituzione nel buffer INPUT : aggiunge una riga in coda APPEND : aggiunge del testo in coda DEL : 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 buffer START file: esegue un file di comandi (anche @FILE) CLEAR BUFFER : svuota il buffer SPOOL file : salva i risultati su file SPOOL OUT : invia a una stampante
  • 6. 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)
  • 7. Uso avanzato SQL> CLEAR BUFFER buffer cleared SQL> INPUT 1 PROMPT Enter a valid employee number 2 PROMPT For example: 7369, 7499, 7521 3 ACCEPT ENUMBER NUMBER PROMPT ’Emp. no.: ’ 4 SELECT ENAME, MGR, JOB, SAL 5 FROM EMP 6 WHERE EMPNO = &ENUMBER 7 SQL> SAVE PROMPT2 Created file PROMPT2 (Si noti la riga 3 che permette la lettura una variabile di tipo NUMBER)
  • 8. Bind Variable Per visualizzare delle variabili PL/SQL in SQL*PLUS è necessario definire delle variabili in questo modo: SQL> VARIABLE id NUMBER Se poi la variabile assume un valore in un blocco PL/SQL SQL> BEGIN 2 :id := 1; 3 END; 4 / Sarà possibile stamparla in SQL*PLUS SQL> print id
  • 9. Formattazione: Colonne COLUMN 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)
  • 10. Formattazione: gruppi E’ possibile sopprimere i dupplicati in questo modo: BREAK ON DEPTNO SELECT DEPTNO, ENAME, SAL FROM EMP ORDER BY DEPTNO; Si ottiene: DEPTNO ENAME SAL ---------- ----------- --------- 10 CLARK 2450 MILLER 1300 20 SMITH 800 ADAMS 1100 30 ALLEN 1600 JAMES 950 TURNER1500 WARD 1250 MARTIN1250 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
  • 11. Totali parziali I raggruppamenti fatti con BREAK possono permettere dei raggruppamenti: Ad esempio: break on DEPTNO skip 0 page nodup on JOB skip 1 nodup COMPUTE SUM OF SAL ON DEPTNO Le funzioni disponibili sono SUM, MINIMUM, MAXIMUM, AVG, STD, VARIANCE, COUNT, NUMBER
  • 12. Titoli Top Title TTITLE CENTER ’ACME WIDGET SALES DEPARTMENT PERSONNEL REPORT’ Bottom Title BTITLE CENTER ’COMPANY CONFIDENTIAL’ Uso Avanzato SQL> TTITLE CENTER ’A C M E W I D G E T’ SKIP 1 - > CENTER ================ SKIP 1 LEFT ’PERSONNEL REPORT’ - > RIGHT ’SALES DEPARTMENT’ SKIP 2 SQL> SET LINESIZE 60 SQL> /
  • 13. Dimensioni della pagina SQL> 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)
  • 14. Impostazioni iniziali E’ possibile creare un file login.sql contenente le impsostazioni iniziali di sql*plus. Ad esempio: SET ECHO OFF PROMPT Setting SERVEROUTPUT ON... SET SERVEROUTPUT ON SIZE 1000000 SET PAGESIZE 999 SET LINESIZE 132 DEFINE _EDITOR = /usr/bin/vi