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