Postgres 相当于 Oracle 的 VARCHAR2(N CHAR)?
Postgres equivalent of Oracle's VARCHAR2(N CHAR)?
我们正在将现有的 Oracle 数据库迁移到 Postgres。到目前为止,我发现 VARCHAR2
和 NUMBER
都不兼容,但在 VARCHAR
和 NUMERIC
中分别具有等效项。
但是在我们的架构中,我还可以看到我们正在使用 VARCHAR2(31 CHAR)
定义一些数据类型。将其更改为 VARCHAR(31 CHAR)
与 Postgres 不兼容,因为它会在 CHAR 部分给出语法错误。使用 Postgres 12 是否有等效的方法来定义它?
Postgres 在声明 varchar
列的最大长度时不区分“字符长度”和“字节长度”。
限制是总是指定为字符的数量。
所以 Oracle 的 VARCHAR2(31 CHAR)
相当于 Postgres 中的 VARCHAR(31)
。
然而,Oracle 的 VARCHAR2(31 byte)
没有等效项。
我们正在将现有的 Oracle 数据库迁移到 Postgres。到目前为止,我发现 VARCHAR2
和 NUMBER
都不兼容,但在 VARCHAR
和 NUMERIC
中分别具有等效项。
但是在我们的架构中,我还可以看到我们正在使用 VARCHAR2(31 CHAR)
定义一些数据类型。将其更改为 VARCHAR(31 CHAR)
与 Postgres 不兼容,因为它会在 CHAR 部分给出语法错误。使用 Postgres 12 是否有等效的方法来定义它?
Postgres 在声明 varchar
列的最大长度时不区分“字符长度”和“字节长度”。
限制是总是指定为字符的数量。
所以 Oracle 的 VARCHAR2(31 CHAR)
相当于 Postgres 中的 VARCHAR(31)
。
然而,Oracle 的 VARCHAR2(31 byte)
没有等效项。