PL/SQL和T-SQL有什么区别?

10

我知道的是前者是Oracle,后者是SQL Server。我认为在一个平台上有些东西可能比另一个平台更容易,但是是否有一些我可以在PL中做而不能在T中做的事情呢?

是否存在基本差异需要我了解?如果有,那它们是什么?

5个回答

8

8

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

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

(在Oracle Forms中,即使是客户端代码也使用PL/SQL,尽管与数据库存储的PL/SQL集成几乎无缝)


3
他们并不一定更容易,只是不同—— ANSI-SQL 是它们之间共享的标准代码——SELECT、WHERE 和其他查询语法,而 T-SQL 或 PL/SQL 则是由数据库供应商添加的控制流程和高级编码,让您能够编写存储过程和字符串查询。

使用仅有 ANSI-SQL 语句就可以运行多个查询,但如果您想要进行任何 IF 语句或处理任何错误,您需要使用超出 ANSI 规范的内容,因此必须使用 T-SQL 或 PL/SQL(如果您不使用 Microsoft 或 Oracle,则需要查看供应商的名称)。


3

我可以补充的一点是,把你在一个语言中知道的东西带到另一个语言中时,需要忘记你所知道的内容(除了尽可能使用基于集合的逻辑)。

其中一个区别的例子是,在T-SQL中,光标通常被认为不是理想的解决方案,除非有一个非常好的原因使用它们,而这种情况通常并不存在。在Oracle中,光标更加优化,例如它们具有批量处理能力,就像普通的SQL语句一样可以处理一组数据。因此,在Oracle中使用光标不会像在T-SQL代码审查中那样立即失败。

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接