PL-SQL vs T-SQL
T-SQL (Transact SQL) er en utvidelse av SQL utviklet av Microsoft. T-SQL brukes i Microsoft SQL Server. PL/SQL (Procedural Language/Structured Query Language) er også en prosedyreutvidelse for SQL utviklet av Oracle. PL/SQL er et hovedprogrammeringsspråk innebygd i Oracle-databasen.
PL/SQL
PL/SQL er en prosedyreutvidelse for SQL utviklet av Oracle. PL/SQL-programmer er bygget opp av blokker, som er grunnenheten i PL/SQL. PL/SQL gir støtte for variabler, løkker (WHILE-løkker, FOR-løkker og Cursor FOR-løkker), betingede utsagn, unntak og matriser. Et PL/SQL-program inneholder SQL-setninger. Disse SQL-setningene inkluderer SELECT, INSERT, UPDATE, DELETE osv. SQL-setninger som CREATE, DROP eller ALTER er ikke tillatt i PL/SQL-programmer. PL/SQL-funksjoner kan inneholde PL/SQL-setninger og SQL-setninger, og den returnerer en verdi. PL/SQL-prosedyrer på den annen side kan ikke inneholde SQL-setninger, og den returnerer ikke en verdi. PL/SQL støtter også noen objektorienterte programmeringskonsepter som innkapsling, funksjonsoverbelastning og informasjonsskjuling. Men det støtter ikke arv. I PL/SQL kan pakker brukes til å gruppere funksjoner, prosedyrer, variabler osv. Pakker tillater gjenbruk av kode. Bruk av PL/SQL-kode på Oracle-server vil føre til forbedret ytelse, siden Oracle-serveren forhåndskompilerer PL/SQL-koden før den faktisk kjøres.
T-SQL
T-SQL er en utvidelse av SQL utviklet av Microsoft. T-SQL utvider SQL ved å legge til flere funksjoner som prosedyreprogrammering, lokale variabler og støttefunksjoner for streng/databehandling. Disse funksjonene gjør T-SQL Turing komplett. Enhver applikasjon som trenger å kommunisere med Microsoft SQL Server, må sende en T-SQL-setning til Microsoft SQL Server. T-SQL gir flytkontrollfunksjoner ved å bruke følgende nøkkelord: BEGIN og END, BREAK, CONTINUE, GOTO, IF and ELSE, RETURN, WAITFOR og WHILE. Videre tillater T-SQL at en FROM-klausul legges til DELETE- og UPDATE-setninger. Denne FROM-klausulen vil tillate å sette inn joins i DELETE- og UPDATE-setninger. T-SQL tillater også å sette inn flere rader i en tabell ved å bruke BULK INSERT-setningen. Dette vil sette inn flere rader i en tabell ved å lese en ekstern fil som inneholder data. Bruk av BULK INSERT forbedrer ytelsen enn å bruke separate INSERT-setninger for hver rad som må settes inn.
Hva er forskjellen mellom PL/SQL og T-SQL?
PL/SQL er en prosedyreutvidelse til SQL levert av Oracle og den brukes med Oracle-databaseserveren, mens T-SQL er en utvidelse av SQL utviklet av Microsoft og den brukes hovedsakelig med Microsoft SQL Server. Det er noen forskjeller mellom datatypene i PL/SQL og T-SQL. For eksempel har T-SQL to datatyper k alt DATETIME og SMALL-DATETIME, mens PL/SQL har en enkelt datatype k alt DATE. Videre, for å få funksjonaliteten til DECODE-funksjonen i PL/SQL, må CASE-setningen brukes i T-SQL. Dessuten, i stedet for SELECT INTO-setningen i T-SQL, må INSERT INTO-setningen brukes i PL/SQL. I PL/SQL er det en MINUS-operator, som kan brukes med SELECT-setninger. I T-SQL kan de samme resultatene oppnås ved å bruke NOT EXISTS-leddet med SELECT-setningene.