oracle - oracle函数,过程和PostgreSQL函数,存储过程之间的区别?
问题描述
谁能告诉我oracle函数,过程和PostgreSQL函数,存储过程之间的区别?
解决方案
这个问题太宽泛了,但我将尝试列举一些主要区别:
它们是用不同的语言编写的。Oracle 有 PL/SQL 和 Java,而使用 PostgreSQL,您几乎可以使用任何您想要的语言。
PostgreSQL 的 PL/pgSQL 是 PL/SQL 的克隆,但有显着差异。
CREATE FUNCTION
and语句的语法CREATE PROCEDURE
完全不同:PostgreSQL 将代码作为字符串文字,Oracle 没有。
声明函数结果的语法有很大不同。
两个系统都设置了返回函数(Orable 称它们为“流水线”),但语法不同。
Oracle 在其数据字典中有大量库,这使得升级很痛苦,但对于编写函数非常有用。PostgreSQL 几乎没有,您通常编写 Perl 或 Python 函数来与系统交互。
对过程的支持只是最近才添加到 PostgreSQL (v11) 中,因此它们的功能还不完整。
您不能在 PostgreSQL 函数中进行事务管理,也不能拥有 Oracle 所说的“自治事务”
您可以在一定程度上解决其中的一些限制,但不一样。
Oracle 函数默认在所有者的用户上下文中执行,而在 PostgreSQL 中默认是在调用者的用户上下文中运行它们。
推荐阅读
- mysql - Yii2 MySQL如何防止重复选择查询
- sql - 如何提高运行 SQL Server 数据库的 django 站点的数据库查询性能?
- java - Jackson 总是序列化完整对象或总是序列化 id
- java - sybase java DB连接问题
- php - 防止 HTML 输出到 STDOUT - Google App Engine 开发环境
- python - ODEINT 错误:ValueError:使用序列设置数组元素
- android - 通过列表中的两个参数进行领域查询
- python - 从 numpy 向量返回小于 1 的最大值
- asp.net - 使用 Ajax 导航的单页网站
- r - 绘制 Out-of-Bag 误差组合 randomForest 模型的有效方法