【发布时间】:2011-07-22 16:03:04
【问题描述】:
我只知道前者是Oracle,后者是SQL Server。我认为有些事情可能更容易 在一个与另一个相比,但我在 PL 中可以做某些我在 T 中不能做的事情吗?
是否有我应该注意的根本区别?如果有,它们是什么?
【问题讨论】:
标签: sql sql-server oracle tsql plsql
我只知道前者是Oracle,后者是SQL Server。我认为有些事情可能更容易 在一个与另一个相比,但我在 PL 中可以做某些我在 T 中不能做的事情吗?
是否有我应该注意的根本区别?如果有,它们是什么?
【问题讨论】:
标签: sql sql-server oracle tsql plsql
它们不一定更简单,只是不同 - 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 Forms 中,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数据库。
这里有更多有用的信息: http://techdifferences.com/difference-between-t-sql-and-pl-sql.html
【讨论】: