PL-SQL vs T-SQL
T-SQL (Transact SQL) è un'estensione di SQL sviluppata da Microsoft. T-SQL è utilizzato in Microsoft SQL Server. PL/SQL (Procedurale Language/Structured Query Language) è anche un'estensione procedurale per SQL sviluppata da Oracle. PL/SQL è un linguaggio di programmazione principale incorporato nel database Oracle.
PL/SQL
PL/SQL è un'estensione procedurale per SQL sviluppata da Oracle. I programmi PL/SQL sono costituiti da blocchi, che è l'unità di base di PL/SQL. PL/SQL fornisce supporto per variabili, cicli (cicli WHILE, cicli FOR e cicli FOR con cursore), istruzioni condizionali, eccezioni e array. Un programma PL/SQL contiene istruzioni SQL. Queste istruzioni SQL includono SELECT, INSERT, UPDATE, DELETE, ecc. Le istruzioni SQL come CREATE, DROP o ALTER non sono consentite nei programmi PL/SQL. Le funzioni PL/SQL possono contenere istruzioni PL/SQL e istruzioni SQL e restituisce un valore. Le procedure PL/SQL invece non possono contenere istruzioni SQL e non restituiscono un valore. PL/SQL supporta anche alcuni concetti di programmazione orientata agli oggetti come l'incapsulamento, il sovraccarico di funzioni e l'occultamento delle informazioni. Ma non supporta l'eredità. In PL/SQL, i pacchetti possono essere utilizzati per raggruppare funzioni, procedure, variabili, ecc. I pacchetti consentono il riutilizzo del codice. L'utilizzo del codice PL/SQL sul server Oracle porterebbe a prestazioni migliori, poiché il server Oracle precompila il codice PL/SQL prima di eseguirlo effettivamente.
T-SQL
T-SQL è un'estensione di SQL sviluppata da Microsoft. T-SQL estende SQL aggiungendo diverse funzionalità come la programmazione procedurale, variabili locali e funzioni di supporto per l'elaborazione di stringhe/dati. Queste caratteristiche rendono T-SQL Turing completo. Qualsiasi applicazione, che deve comunicare con Microsoft SQL Server, deve inviare un'istruzione T-SQL a Microsoft SQL Server. T-SQL fornisce funzionalità di controllo del flusso utilizzando le seguenti parole chiave: BEGIN e END, BREAK, CONTINUE, GOTO, IF e ELSE, RETURN, WAITFOR e WHILE. Inoltre, T-SQL consente di aggiungere una clausola FROM alle istruzioni DELETE e UPDATE. Questa clausola FROM consentirebbe di inserire join nelle istruzioni DELETE e UPDATE. T-SQL consente inoltre di inserire più righe in una tabella utilizzando l'istruzione BULK INSERT. Ciò inserirebbe più righe in una tabella leggendo un file esterno contenente dati. L'utilizzo di BULK INSERT migliora le prestazioni rispetto all'utilizzo di istruzioni INSERT separate per ogni riga che deve essere inserita.
Qual è la differenza tra PL/SQL e T-SQL?
PL/SQL è un'estensione procedurale di SQL fornita da Oracle e viene utilizzata con il server di database Oracle, mentre T-SQL è un'estensione di SQL sviluppata da Microsoft e viene utilizzata principalmente con Microsoft SQL Server. Esistono alcune differenze tra i tipi di dati in PL/SQL e T-SQL. Ad esempio T-SQL ha due tipi di dati chiamati DATETIME e SMALL-DATETIME, mentre PL/SQL ha un unico tipo di dati chiamato DATE. Inoltre, per ottenere la funzionalità della funzione DECODE in PL/SQL, è necessario utilizzare l'istruzione CASE in T-SQL. Inoltre, invece dell'istruzione SELECT INTO in T-SQL, è necessario utilizzare l'istruzione INSERT INTO in PL/SQL. In PL/SQL è presente un operatore MENO, che può essere utilizzato con le istruzioni SELECT. In T-SQL gli stessi risultati possono essere ottenuti utilizzando la clausola NOT EXISTS con le istruzioni SELECT.