Link to home
Start Free TrialLog in
Avatar of paulwhelan
paulwhelan

asked on

PLSQL vs SQL vs TSQL?

Hi
Anyone know thats the difference between the three?
Thanks
Paul
ASKER CERTIFIED SOLUTION
Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of csachdeva
csachdeva

The "PL" in PL/SQL is short for Procedural Language. It is an extension to SQL that allows you to create PL/SQL programs that contain standard programming features such as error handling, flow-of- control structures, and variables, all allowing you to manipulate Oracle data. By itself, SQL does not support these concepts.

plsql is a proprietary language coined by oracle for use with their databases. Sql (structured query language) by itself isn't really a programming language. Is is more like a data sublanguage. You need to combine sql with some other programming language (like C, Visual Basic, or Java) to create a complete application. This is essentially what oracle did. plsql combines sql with procedural programming language.

In T-SQL there are significant extensions to the ANSI SQL-92 standard which means converting applications to a different database later will be a code challenge re-write. The INNER JOIN, LEFT OUTER, RIGHT OUTER JOIN syntax differs from the classic JOIN.
b. No Java database engine as in Oracle.
c. Stored procedures in SQL Server are not compiled until executed (which means overhead, late binding and finding errors at execution time only!).
d. No ability to read/write from external files from a stored procedure.
e. PL/SQL has many DBMS system packages, where T-SQL relies only on a limited number of extended and system stored procedures in the master database.
f. PL/SQL is better in error exception handling, and there is no such thing as exceptions in T-SQL (T-SQL uses @@error -- not elegant!).
g. T-SQL does not have the MINUS operator, that makes finding schema differences more difficult in SQL Server.
h. In SQL Server there is no "dead connection detection". Clients who lose their connection may still hold locks until a DBA is notified to kill their server side processes.
i. In SQL Server there is no such thing as SQL*NET aliases/service names! This means applications have to hard code the actual server name into their apps, making it difficult to move databases later to load balance across servers.

Hope that will answer your query.

regards,
Chetan Sachdeva