DB2 是否遵守数据类型的最大长度?
Does DB2 honour maximum length of data type?
DB2 详细信息:
- 产品名称:DB2/LINUXX8664
- 版本:10.5.0.5
根据 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 值等方面的详细信息会影响列大小和行大小。
DB2 详细信息:
- 产品名称:DB2/LINUXX8664
- 版本:10.5.0.5
根据 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)
您遗漏了有关默认表空间和页面大小的详细信息,因此我假设您使用的是默认值。最大行大小记录为 CREATE TABLE 的一部分。您使用的 varchar 大小仅适用于 32k 页,这不是默认页面大小。所以我希望出现该错误消息。
还有值压缩、NULL 值等方面的详细信息会影响列大小和行大小。