PL/SQL: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: zh:PL-SQL |
WP:SINTASSI: formattazione |
||
Riga 1:
Il '''PL/SQL (Procedural
Linguaggi simili al PL/SQL sono inclusi in altri [[database management system]] SQL. La sua [[sintassi]] è fortemente simile a quella del linguaggio di programmazione [[Ada (linguaggio)|Ada]].
==Funzionalità==
Il PL/SQL supporta le [[variabile|variabili]], [[condizioni]], e gestisce le [[Eccezione (informatica)|eccezioni]]. Le implementazioni dalla versione 8 di [[Oracle]] [[RDBMS]] hanno messo enfasi su l'[[
Le funzioni SQL sottostanti sono come programmi dichiarativi.
Il linguaggio SQL standard —diversamente da alcuni linguaggi di programmazione funzionali— non richiede implementazioni per convertire le chiamate ricorsive in salti.
SQL non fornisce prontamente i puntatori alla "prima riga" e al "resto della tabella", e non può eseguire facilmente costrutti come cicli.
Il PL/SQL invece, com un linguaggio procedurale [[Turing equivalenza|Turing-complete]], permette agli sviluppatori dei [[database]] Oracle di interfacciarsi con il sottostante database in maniera imperativa. Gli statements SQL possono effettuare chiamate inline in modo esplicito alle funzioni PL/SQL, o possono lanciare triggers PL/SQL in caso di predefiniti eventi [[Data Manipulation Language]] (DML).
<!--
Line 15 ⟶ 16:
-->
== Struttura base del codice ==
Riga 50:
:<font style="color:#006400">--commento su singola linea</font>
<p>Le eccezioni possono essere di due tipi:▼
# eccezioni predefinite
# eccezioni definite dall'utente.
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 Message associato. I programmatori possono accedere a questi dati con le funzioni SQLCODE e SQLERRM.
Line 82 ⟶ 87:
|}
Il simbolo <
=== Variabili
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">valore</font><font style="color:#0000FF">;</font>
Per definire una variabile numerica il programmatore può usare il tipo NUMBER.
In questo caso è anche possibile definire la precisione (P) e la scala (S). La precisione indica quanti numeri saranno utilizzati per rappresentare il numero. La scala indica quanti numeri sono decimali. Per esempio, 3,1416 è composto da una precisione 5 e una scala 4.
Altri tipi numerici abbastanza comuni sono
Line 100 ⟶ 104:
Per definire una variabile di tipo testuale, si può usare il tipo VARCHAR2, con eventualmente tra parentesi il numero massimo di caratteri.
Altri tipi di variabile testuale includono:
Line 161 ⟶ 164:
I programmatori possono richiamare i singoli attributi, come in una struct, attraverso la dot-notation, ad esempio:
==Linguaggi simili==
Anche altri DBMS hanno dei linguaggi associati. [[Sybase SQL Server|Sybase]] e il suo derivato [[Microsoft SQL Server]] hanno [[Transact-SQL]], [[PostgreSQL]] ha [[PL/pgSQL]] (che cerca di emulare PL/SQL), [[DB2]] include SQL Procedural Language (<ref>[http://publib.boulder.ibm.com/infocenter/db2help/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0011916.htm SQL PL]</ref>) e [[MySQL]] ha una versione di SQL molto simile a PL/SQL.
PL/SQL assomiglia da vicino al [[Pascal (linguaggio)|Pascal]]. La struttura a packages alla struttura base del Pascal, o alle unità [[Delphi]].
Il PL/SQL permette anche di definire classi e instanziarle come oggetti, questo lo rende simile ai linguaggi di programmazione orientati agli oggetti. In PL/SQL una classe è chiamata Advance Data Type (ADT), è definita come un tipo SQL Oracle, diversamente dai tipi definiti dall'utente, permettendo di usarli sia in SQL che in PL/SQL. Il costruttore e i metodi sono scritti in PL/SQL. L'oggetto può essere salvato in una colonna di database Oracle.
==Note==
<references/>
==Bibliografia==
|