据此:_
VARCHAR(n) 最大长度为 n 字节的变长字符串。n 必须大于 0 且小于取决于表空间页面大小的数字。最大长度为 32704。
如果我正确理解这个定义,根据数据库的配置,最大长度可以小于 32704。
我想知道,如何使用 SQL 命令计算特定DB2 数据库的 VARCHAR 类型的当前最大长度?
请注意:解决方案必须包括自动确定页面大小;此值不能作为建议代码的参数。
提前致谢!
您可以从以下位置确定表空间的页面大小sysibm.systablespace
:
select pgsize from sysibm.systablespace where name='FOO'
create table 文档提供了有关最大大小如何与页面文件大小相关的信息varchar
(搜索最大记录大小)。我不想给出明确的答案,因为它相当复杂,而且我没有 z/OS 上的 DB2 来测试它。但是您应该能够结合该信息和反复试验来确定每个页面大小的最大长度。
注意:此答案适用于 z/OS 上的 DB2(假设是因为这是上述文档引用的来源)。它在 LUW 上略有不同,但如果您访问相应的文档页面即可找到。