【问题标题】:Difference between oracle function,procedures and PostgreSQL functions,Stored Procedures?oracle函数,过程和PostgreSQL函数,存储过程之间的区别?
【发布时间】:2019-10-09 05:37:11
【问题描述】:

谁能告诉我oracle函数、过程和PostgreSQL函数、存储过程的区别?

【问题讨论】:

    标签: oracle postgresql function stored-procedures


    【解决方案1】:

    这个问题太宽泛了,但我会尝试列举一些主要区别:

    • 它们是用不同的语言编写的。 Oracle 有 PL/SQL 和 Java,而使用 PostgreSQL,您几乎可以使用任何您想要的语言。

      PostgreSQL 的 PL/pgSQL 是 PL/SQL 的克隆,但有显着差异。

    • CREATE FUNCTIONCREATE PROCEDURE 语句的语法完全不同:

      • PostgreSQL 将代码作为字符串文字,Oracle 没有。

      • 声明函数结果的语法有很大不同。

      • 两个系统都设置了返回函数(Orable 称它们为“流水线”),但语法不同。

    • Oracle 在其数据字典中有大量库,这使得升级很痛苦,但对于编写函数非常有用。 PostgreSQL 几乎没有这些,您通常编写 Perl 或 Python 函数来与系统交互。

    • 最近才向 PostgreSQL (v11) 添加了对过程的支持,因此它们的功能还不完整。

    • 不能在 PostgreSQL 函数中进行事务管理,也不能拥有 Oracle 所说的“自治事务”

      您可以在一定程度上绕过这些限制,但不一样。

    • Oracle 函数默认在所有者的用户上下文中执行,而在 PostgreSQL 中默认是在调用者的用户上下文中运行它们。

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 2023-02-08
      • 1970-01-01
      • 2012-08-31
      • 2011-07-17
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2016-02-25
      相关资源
      最近更新 更多