Anyone know thats the difference between the three?
Who is Participating?
Guy Hengel [angelIII / a3]Billing EngineerCommented:
PLSQL is the procedural language in Oracle
TSQL is the procedural language in SQL Server
SQL is the generic Structured Query language, where all database products implemented as close as possible to the ANSI standard
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.

Chetan Sachdeva
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.