PL-SQL vs T-SQL
T-SQL (Transact SQL) és una extensió d'SQL desenvolupada per Microsoft. T-SQL s'utilitza a Microsoft SQL Server. PL/SQL (Llenguatge de procediment/Llenguatge de consulta estructurat) també és una extensió de procediment per a SQL desenvolupada per Oracle. PL/SQL és un llenguatge de programació principal incrustat a la base de dades Oracle.
PL/SQL
PL/SQL és una extensió de procediment per a SQL desenvolupada per Oracle. Els programes PL/SQL estan formats per blocs, que és la unitat bàsica de PL/SQL. PL/SQL proporciona suport per a variables, bucles (bucles WHILE, bucles FOR i bucles Cursor FOR), declaracions condicionals, excepcions i matrius. Un programa PL/SQL conté sentències SQL. Aquestes sentències SQL inclouen SELECT, INSERT, UPDATE, DELETE, etc. Les sentències SQL com CREATE, DROP o ALTER no es permeten als programes PL/SQL. Les funcions PL/SQL poden contenir sentències PL/SQL i sentències SQL i retornen un valor. D' altra banda, els procediments PL/SQL no poden contenir sentències SQL i no retornen cap valor. PL/SQL també admet alguns conceptes de programació orientada a objectes com ara encapsulació, sobrecàrrega de funcions i ocultació d'informació. Però no admet l'herència. En PL/SQL, els paquets es poden utilitzar per agrupar funcions, procediments, variables, etc. Els paquets permeten la reutilització del codi. L'ús de codi PL/SQL al servidor Oracle augmentaria el rendiment, ja que el servidor Oracle compila prèviament el codi PL/SQL abans d'executar-lo realment.
T-SQL
T-SQL és una extensió d'SQL desenvolupada per Microsoft. T-SQL amplia SQL afegint diverses característiques com ara programació de procediments, variables locals i funcions de suport per al processament de dades/cadenes. Aquestes característiques fan que T-SQL Turing sigui complet. Qualsevol aplicació, que ha de comunicar-se amb el servidor Microsoft SQL, ha d'enviar una instrucció T-SQL al servidor Microsoft SQL. T-SQL proporciona capacitats de control de flux mitjançant les paraules clau següents: BEGIN i END, BREAK, CONTINUE, GOTO, IF i ELSE, RETURN, WAITFOR i WHILE. A més, T-SQL permet afegir una clàusula FROM a les sentències DELETE i UPDATE. Aquesta clàusula FROM permetria inserir unions a les sentències DELETE i UPDATE. T-SQL també permet inserir diverses files a una taula mitjançant la instrucció BULK INSERT. Això inseriria diverses files a una taula llegint un fitxer extern que conté dades. L'ús de BULK INSERT millora el rendiment que utilitzar instruccions INSERT separades per a cada fila que cal inserir.
Quina diferència hi ha entre PL/SQL i T-SQL?
PL/SQL és una extensió de procediment a l'SQL proporcionada per Oracle i s'utilitza amb el servidor de bases de dades Oracle, mentre que T-SQL és una extensió d'SQL desenvolupada per Microsoft i s'utilitza principalment amb Microsoft SQL Server. Hi ha algunes diferències entre els tipus de dades en PL/SQL i T-SQL. Per exemple, T-SQL té dos tipus de dades anomenats DATETIME i SMALL-DATETIME, mentre que PL/SQL té un únic tipus de dades anomenat DATE. A més, per obtenir la funcionalitat de la funció DECODE en PL/SQL, s'ha d'utilitzar la instrucció CASE a T-SQL. A més, en comptes de la instrucció SELECT INTO a T-SQL, s'ha d'utilitzar la instrucció INSERT INTO a PL/SQL. A PL/SQL, hi ha un operador MINUS, que es pot utilitzar amb sentències SELECT. A T-SQL es poden obtenir els mateixos resultats utilitzant la clàusula NOT EXISTS amb les sentències SELECT.