Postgres 相当于 Oracle 的 VARCHAR2(N CHAR)?

use*_*784 5 postgresql sqldatatypes

我们正在将现有的 Oracle 数据库迁移到 Postgres。到目前为止,我发现 和VARCHAR2都不NUMBER兼容,但VARCHARNUMERIC分别具有等效项。

然而,在我们的架构中,我还可以看到我们正在使用定义一些数据类型VARCHAR2(31 CHAR)。将此更改为VARCHAR(31 CHAR)与 Postgres 不兼容,因为它会在 CHAR 部分上产生语法错误。是否有使用 Postgres 12 的等效方法来定义它?

小智 12

Postgres 在声明列的最大长度时不区分“字符长度”和“字节长度” varchar

限制始终指定为字符数。

VARCHAR2(31 CHAR)所以 Postgres相当于Oracle 的功能VARCHAR(31)

然而,Oracle 的VARCHAR2(31 byte).