2012-12-17 189 views
1

根據this如何計算DB2中VARCHAR類型的最大長度?

VARCHAR(n)的變長字符串與 n個字節的最大長度。 n必須大於0且小於號碼,該號碼取決於表空間的頁面大小上的 。最大長度爲32704.

如果我正確理解這個定義,根據數據庫的配置,最大長度可以小於32704。

我想知道,如何計算VARCHAR類型的當前最大長度爲使用SQL命令的特定 DB2數據庫?

請注意:解決方案必須包括自動確定頁面大小;此值不能是建議代碼的參數。

在此先感謝!

回答

3

您可以從sysibm.systablespace確定表空間的頁面大小:

select pgsize from sysibm.systablespace where name='FOO' 

create table documentation給出的最大varchar大小如何與頁面文件大小信息(搜索最大記錄大小)。我不想給出明確的答案,因爲它非常複雜,我沒有z/OS上的DB2來測試它。但是,您應該能夠從該信息和試驗錯誤的組合中確定每個頁面大小的最大長度。

注意:此答案適用於z/OS上的DB2(假定是因爲這是上述文檔引用的來源)。它與LUW略有不同,但如果您轉到相應的文檔頁面,可以找到它。

+0

請問您可以檢查:我的sysibm方案中沒有名爲「systablespace」的列名爲「name」的表。有「systablespaceS」,它包含名爲「TBSPACE」的列。無論如何,我接受你的答案。謝謝! – Andremoniy

+0

@Andremoniy,在這種情況下,您聽起來像是在使用DB2 for LUW。我認爲您使用的是z/OS,因爲您鏈接的文檔(DB2文檔可能會讓人困惑,因此我建議您在搜索時始終包括您的版本號和平臺,以便獲得正確的版本)。 – dan1111