繁体   English   中英

oracle function,过程和 PostgreSQL 函数,存储过程之间的区别?

[英]Difference between oracle function,procedures and PostgreSQL functions,Stored Procedures?

谁能告诉我 oracle function,过程和 PostgreSQL 函数,存储过程之间的区别?

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

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

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

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

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

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

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

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

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

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

    您可以在一定程度上解决其中的一些限制,但不一样。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM