Japin

登高必自卑,行远必自迩

上一篇中我介绍了如何在 PostgreSQL 数据库中使用存储过程来发送 HTTP 请求,本文则介绍如何使用 PostgreSQL 的存储过程发送邮件。

Oracle 数据库提供了 ult_smtp 来发送邮件,PostgreSQL 同样的不支持该功能,因此只能采取曲线救国的策略,本文将采用 plpython3u 来编写存储过程并发送邮件。

阅读全文 »

在 Oracle 迁移到 PostgreSQL 数据库的过程中,我们通常使用 PostgreSQL 中的 VARCHAR 类型替换 Oracle 中的 VARCHAR2 类型。本文将针对 Oracle 中的 VARCHAR2 类型和 PostgreSQL 中的 VARCHAR 类型进行简要的比较。

阅读全文 »

在最近发布的 PostgreSQL 14 中,我们最兴奋的功能之一是引入了 multirange 类型。简而言之,multirange 类型是一组不重叠的范围(range)。与范围数组不同,它们防止重叠,因此允许你有效地建立有间隙的范围模型。

我们对它们的一个用例是建立时间模型。例如,如果您想记录累积的时间和某人在医院的天数,您可以将其存储为一个 datemultirange 类型。

在 PostgreSQL 14 中,有相当多的运算符和函数可用,但我们需要的一些明显的运算符和函数包括聚合,如联合聚合,目前还不存在。然而,还有一些标准的运算符,如 +(合并两个范围)和 * 表示两个范围相交,- 表示两个范围的差,以及常见的包含布尔运算符。

阅读全文 »

Oracle 数据库中空字符串和 NULL 在字符串的环境下是相同的,这就意味着我们可以直接将其与字符串进行操作从而得到我们想要的结果,然而在 PostgreSQL 数据库中,任何字符串与 NULL 进行操作结果均为 NULL。因此,在迁移 NULL 字符串操作时,我们需要特别注意。

阅读全文 »

Oracle 迁移到 PostgreSQL 中最常见的问题就是 DUAL 表的问题。在 Oracle 数据库中,每个查询都必须跟随一个 FROM 子句,这是强制性的。然而在 PostgreSQL 数据库中,FROM 子句是可选的。本文记录了如何将 Oracle 中的 DUAL 表迁移到 PostgreSQL 数据库中。

阅读全文 »

数据库通常都提供了一系列预定义的聚合函数(Aggregate Functions),例如 MAX,MIN,SUM 等,它们对一组数据进行操作。这些预定义的聚合函数通常只能处理标量类型,不能处理诸如对象类型等复杂的数据类型,当前大部分数据库都提供了为复杂数据类型自定义聚合函数(User-Defined Aggregate Functions)的功能。本文简要介绍 Oracle 中的自定义聚合函数以及如何迁移到 PostgreSQL 数据库中。

阅读全文 »

PostgreSQL 是世界上最好的 OLTP 数据库(OLTP,即在线事务处理)之一。然而,它可以做的不仅仅是 OLTP。PostgreSQL 提供了许多与更具 OLAP 风格的工作负载相关的附加功能。其中一个特性称为“GROUPING SETS”(GROUPING SETS,即分组集)。

阅读全文 »
0%