DB2 是否遵守数据类型的最大长度?

Does DB2 honour maximum length of data type?

DB2 详细信息:

根据 DB2 文档,varchar 的最大长度为 32704 字节

我试过了:

create table t_varchar (c1 varchar(32673));

收到错误:

Error: DB2 SQL Error: SQLCODE=-604, SQLSTATE=42611, SQLERRMC=varchar(32673), DRIVER=4.14.111 SQLState: 42611 ErrorCode: -604

它允许我创建最大长度为 32672 的 varchar。

这是期望的行为还是我做错了什么?

同样,对于 CHAR,我无法使用 char(255)

创建 table

您遗漏了有关默认表空间和页面大小的详细信息,因此我假设您使用的是默认值。最大行大小记录为 CREATE TABLE 的一部分。您使用的 varchar 大小仅适用于 32k 页,这不是默认页面大小。所以我希望出现该错误消息。

还有值压缩、NULL 值等方面的详细信息会影响列大小和行大小。