Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PL/SQL和T-SQL之间的区别是什么?_Sql_Sql Server_Oracle_Tsql_Plsql - Fatal编程技术网

PL/SQL和T-SQL之间的区别是什么?

PL/SQL和T-SQL之间的区别是什么?,sql,sql-server,oracle,tsql,plsql,Sql,Sql Server,Oracle,Tsql,Plsql,我只知道前者是Oracle,后者是SQL Server。我想有些事情可能在一个方面比在另一个方面更容易,但是有一些事情我可以在PL中做而在t中做不到吗 我是否应该意识到根本性的差异?如果是这样,它们是什么?它们不一定更简单,只是不同而已-ANSI-SQL是它们之间共享的标准代码-SELECT、WHERE和其他查询语法,T-SQL或PL/SQL是控制流和高级编码,由数据库供应商添加到顶部,让您可以一起编写存储过程和字符串查询 仅使用ANSI-SQL语句就可以运行多个查询,但是如果您想执行任何if语

我只知道前者是Oracle,后者是SQL Server。我想有些事情可能在一个方面比在另一个方面更容易,但是有一些事情我可以在PL中做而在t中做不到吗


我是否应该意识到根本性的差异?如果是这样,它们是什么?

它们不一定更简单,只是不同而已-ANSI-SQL是它们之间共享的标准代码-SELECT、WHERE和其他查询语法,T-SQL或PL/SQL是控制流和高级编码,由数据库供应商添加到顶部,让您可以一起编写存储过程和字符串查询


仅使用ANSI-SQL语句就可以运行多个查询,但是如果您想执行任何if语句或处理任何错误,您使用的内容比ANSI规范中的要多,因此它可以是T-SQL或PL/SQL(如果您不使用Microsoft或Oracle,则供应商可以管它叫什么).

唯一的根本区别在于PL/SQL是一种带有嵌入式SQL的过程编程语言,而T-SQL是MS SQL Server使用的一组SQL过程扩展。语法差异很大。以下是关于在两者之间转换的几篇好文章:


  • T-SQL和PL/SQL是两种完全不同的编程语言,具有不同的语法、类型系统、变量声明、内置函数和过程以及编程功能

    它们唯一的共同点是直接嵌入SQL语句,并在数据库中存储和执行


    (在Oracle表单中,PL/SQL甚至用于客户端代码,尽管与存储在数据库中的PL/SQL的集成(几乎)毫无意义)

    我可以添加的一点是在一个表单中获取您知道的内容,而在使用另一个表单时忘记您知道的内容(在可能的情况下使用基于集合的逻辑除外)

    区别的一个例子是,游标在T-SQL中通常被认为是不太理想的解决方案,除非有很好的理由使用它们,而通常没有这样的理由。在Oracle中,游标的优化程度要高得多,例如,它们具有批量功能,即处理一组数据的能力,就像普通SQL语句一样。因此,在Oracle中,使用游标并不是即时失败的代码检查,而可能是在TSQL代码检查中


    总体而言,T-SQL更容易学习,因为就语言而言,它没有太多内容。PL/SQL是一种更丰富的语言,因此更复杂。如果你有一本好书,学习这门语言并不难。总的来说,我非常喜欢PLSQL的深度,也非常喜欢TSQL的简单性。

    PL/SQL和T-SQL是SQL的扩展。PL/SQL用于Oracle数据库,T-SQL用于Microsoft数据库

    以下是更有用的信息: