PL-SQL vs T-SQL
T-SQL (Transact SQL) é uma extensão do SQL desenvolvida pela Microsoft. T-SQL é usado no Microsoft SQL Server. PL/SQL (Procedural Language/Structured Query Language) também é uma extensão procedural para SQL desenvolvida pela Oracle. PL/SQL é uma linguagem de programação principal embutida no banco de dados Oracle.
PL/SQL
PL/SQL é uma extensão procedural para SQL desenvolvida pela Oracle. Os programas PL/SQL são formados por blocos, que é a unidade básica do PL/SQL. PL/SQL fornece suporte para variáveis, loops (loops WHILE, loops FOR e loops Cursor FOR), instruções condicionais, exceções e arrays. Um programa PL/SQL contém instruções SQL. Essas instruções SQL incluem SELECT, INSERT, UPDATE, DELETE, etc. Instruções SQL como CREATE, DROP ou ALTER não são permitidas em programas PL/SQL. As funções PL/SQL podem conter instruções PL/SQL e instruções SQL e retornam um valor. Os procedimentos PL/SQL, por outro lado, não podem conter instruções SQL e não retornam um valor. A PL/SQL também suporta alguns conceitos de programação orientada a objetos, como encapsulamento, sobrecarga de funções e ocultação de informações. Mas não suporta herança. Em PL/SQL, os pacotes podem ser usados para agrupar funções, procedimentos, variáveis, etc. Os pacotes permitem a reutilização de código. Usar o código PL/SQL no servidor Oracle levaria a um melhor desempenho, já que o servidor Oracle pré-compila o código PL/SQL antes de executá-lo.
T-SQL
T-SQL é uma extensão do SQL desenvolvida pela Microsoft. O T-SQL estende o SQL adicionando vários recursos, como programação procedural, variáveis locais e funções de suporte para processamento de strings/dados. Esses recursos tornam o T-SQL Turing completo. Qualquer aplicativo que precise se comunicar com o Microsoft SQL Server precisa enviar uma instrução T-SQL para o Microsoft SQL Server. O T-SQL fornece recursos de controle de fluxo usando as seguintes palavras-chave: BEGIN e END, BREAK, CONTINUE, GOTO, IF e ELSE, RETURN, WAITFOR e WHILE. Além disso, o T-SQL permite que uma cláusula FROM seja adicionada às instruções DELETE e UPDATE. Esta cláusula FROM permitiria a inserção de junções nas instruções DELETE e UPDATE. O T-SQL também permite inserir várias linhas em uma tabela usando a instrução BULK INSERT. Isso inseriria várias linhas em uma tabela lendo um arquivo externo contendo dados. Usar BULK INSERT melhora o desempenho do que usar instruções INSERT separadas para cada linha que precisa ser inserida.
Qual é a diferença entre PL/SQL e T-SQL?
PL/SQL é uma extensão procedural do SQL fornecido pela Oracle e é usado com o servidor de banco de dados Oracle, enquanto o T-SQL é uma extensão do SQL desenvolvido pela Microsoft e é usado principalmente com o Microsoft SQL Server. Existem algumas diferenças entre os tipos de dados em PL/SQL e T-SQL. Por exemplo, T-SQL tem dois tipos de dados chamados DATETIME e SMALL-DATETIME, enquanto PL/SQL tem um único tipo de dados chamado DATE. Além disso, para obter a funcionalidade da função DECODE em PL/SQL, a instrução CASE deve ser usada em T-SQL. Além disso, em vez da instrução SELECT INTO em T-SQL, a instrução INSERT INTO deve ser usada em PL/SQL. Em PL/SQL, existe um operador MINUS, que pode ser usado com instruções SELECT. Em T-SQL, os mesmos resultados podem ser obtidos usando a cláusula NOT EXISTS com as instruções SELECT.