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

Postgres equivalent of Oracle's VARCHAR2(N CHAR)?

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

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

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

限制是总是指定为字符的数量。

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

然而,Oracle 的 VARCHAR2(31 byte) 没有等效项。