PL/SQL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 24:
<p> In ogni release dell'Oracle DBMS, la Oracle Corporation aggiunge packages.
== Struttura base del codice ==
I programmi '''PL/SQL''' consiste di blocchi. I blocchi hanno questa forma generale:
:{|
|<font style="color:#0000FF">declare</font>
|-
| <font style="color:#006400">-- Blocco di dichiarazione (optional)</font>
|-
|<font style="color:#0000FF">begin</font>
|-
| <font style="color:#006400">-- Proprietà del programma</font>
|-
|<font style="color:#0000FF">exception
|-
| <font style="color:#006400">-- Gestione eccezioni(opzionale)</font>
|-
|<font style="color:#0000FF">end;</font>
|}
:<font style="color:#006400">/* Esempi di commenti</font>
:<font style="color:#006400">multilinea... */</font>
:<font style="color:#006400">--commento su singola linea</font>
<p>La sezione DECLARE specifica i tipi di dato della variabili, delle costanti, delle collezioni e i tipi definiti dall'utente.
<p>Il blocco tra BEGIN ed END specifica il codice da eseguire.
<p>Le eccezioni possono essere di due tipi:
# eccezioni predefinite
# eccezioni definite dall'utente.
<p> I pogrammatori possono lanciare le eccezioni definite dall'utente in modo esplicito, possono farlo con il commando RAISE:
RAISE <nome dell'eccezione>
<p> L'Oracle Corporation ha predefinito numerose eccezioni, ad esempio NO_DATA_FOUND, TOO_MANY_ROWS, etc.
Ogni eccezione ha un SQL Error Number e un SQL Error Messaggio associato. I programmatori possono accedere a questi dati con le funzioni SQLCODE e SQLERRM.
== Variabili ==
La sezione DECLARE definisce le variabili, ed eventualmente le inizializza. Se non inizializzate avranno il loro valore di default, ad esempio null o zero.
Per esempio:
:{|
|<font style="color:#0000FF">declare</font>
|-
| number1 <font style="color:#FF0000">number</font><font style="color:#0000FF">(</font><font style="color:#8B4513">2</font><font style="color:#0000FF">);</font>
|-
| number2 <font style="color:#FF0000">number</font><font style="color:#0000FF">(</font><font style="color:#8B4513">2</font><font style="color:#0000FF">) := </font><font style="color:#FF0000">17</font><font style="color:#0000FF">;</font>
|-
| text <font style="color:#FF0000">varchar2</font><font style="color:#0000FF">(</font><font style="color:#8B4513">12</font><font style="color:#0000FF">) := </font><font style="color:#FF0000">'Hello world'</font><font style="color:#0000FF">;</font>
|-
|<font style="color:#0000FF">begin</font>
|-
| <font style="color:#0000FF">select street_number into</font> number1 <font style="color:#0000FF">from</font> <font style="color:#B8860B"> address </font><font style="color:#0000FF">where name=</font><font style="color:#FF0000">'Smith'</font><font style="color:#0000FF">;</font>
|-
|<font style="color:#0000FF">end;</font>
|}
Il simbolo <nowiki>:</nowiki>= funziona come un operatore di assegnamento, per memorizzare un valore in una variabile.
<p> I tipi di dato più usati sono NUMBER, INTEGER, VARCHAR2, DATE, TIMESTAMP etc.
=== Variabili Numeriche ===
nome_variabile <font style="color:#FF0000">number</font><font style="color:#0000FF">(</font><font style="color:#8B4513">P[,S]</font><font style="color:#0000FF">) := </font><font style="color:#FF0000">value</font><font style="color:#0000FF">;</font>
Per definire una variabile numerica, il programmatore usa il tipo NUMBER.
In questo caso è anche possibile definire la precizione (P) o la scala (S).
Altri tipi numerici abbstanza comuni sono
:<font style="color:#FF0000">dec, decimal, double precision, integer, int, numeric, real, smallint, binary_integer, pls_integer</font>
=== Variabili testuali ===
nome_variabile <font style="color:#FF0000">varchar</font><font style="color:#0000FF">(</font><font style="color:#8B4513">L</font><font style="color:#0000FF">) := </font><font style="color:#FF0000">'Text'</font><font style="color:#0000FF">;</font>
Per definire una variabile testuale, si può usare il tipo VARCHAR2, con eventualmente tra parentesi il numero massimo di caratteri.
ALtri tipi di variabile testuale includono:
:<font style="color:#FF0000">varchar, char, long, raw, long raw, nchar, nchar2</font>
=== Variabili booleane ===
nome_variabile <font style="color:#FF0000">boolean</font><font style="color:#0000FF"></font><font style="color:#0000FF">:= </font><font style="color:#FF0000">true</font><font style="color:#0000FF">;</font>
Le variabili booleane possono avere i seguenti valori TRUE, FALSE o NULL.
=== Variabili temporali ===
variable_name <font style="color:#FF0000">date </font><font style="color:#0000FF"></font><font style="color:#0000FF">:= </font><font style="color:#FF0000">'01-Jan-2005'</font><font style="color:#0000FF">;</font>
I programamtori possono definire una variabile di tipo data usando il tipo DATE.
Il DBMS Oracle fornisce la funzione "to_date" per convertire le stringhe in date.
Ad esempio: "''to_date('31-12-2004','dd-mm-yyyy'))''"
Per convertire le date in testo si può usare la funzione "to_char ( date_string, format_string ).
=== Tipi di dati per specifiche colonne ===
Nome_variabile <font style="color:#B8860B">nome_tabella</font><font style="color:#0000FF">.</font>nome_colonna<font style="color:#0000FF">%type;</font>
Questa sintassi definisce una variabile dello stesso tipo della colonna a cui si riferisce nella dichiarazione.
=== Tipi dato definiti dall'utente ===
|