我有DB2數據庫,而且我已經定義了帶有varchar(x)
的表格,但似乎x
- 不是字符數,而是字節數。是否有可能以某種方式動態解決問題?或者我應該更新我的表格?DB2 UTF8存儲配置
回答
UTF-8字符可以用長度爲1到4個字節的字節序列表示,所以不可能事先知道包含x
Unicode字符的UTF-8字符串的最大字節長度。
從DB2 10.5修訂包4(所謂的「坎昆版本」)開始,您可以在定義列時specify string length units:VARCHAR(x OCTETS)
將表示x字節; VARCHAR(x CODEUNITS16)
意味着x個雙字節字符,並且VARCHAR(x CODEUNITS32)
意味着x個四字節字符。
如果不明確指定單位,則缺省值將從string_units
數據庫配置參數和NLS_STRING_UNITS
全局變量中導出。
GRAPHIC
and VARGRAPHIC
儘管數據類型的默認單位是2字節字符,但不是八位位組,但數據類型也受制於相同的單位規範。
注意,字符和CLOB列仍受到相同的長度的限制如前:例如,一個VARCHAR
列的最大長度是32672個字節(OCTETS
),或16336 CODEUNITS16
,或8168 CODEUNITS32
。
所以基本上我需要設置字符串單位的CODEUNITS32,對嗎? –
我不能告訴你你需要做什麼,因爲我不知道你的要求。我希望我提供的信息能幫助你做出決定。 – mustaccio
我已經安裝了fx4並將string_utils設置爲codeunit32,因此它現在可以工作,謝謝! –
- 1. 使用DB2存儲過程配置Spring Security
- 2. 配置phpmyadmin配置存儲
- 3. 配置存儲
- 4. 爲DB2配置SQuirreL
- 5. IBM Cognos DB2配置
- 6. 從db2導出UTF8數據
- 7. 存儲配置值
- 8. 要在DB2存儲過程
- 9. 調試DB2存儲過程
- 10. DB2 - 在存儲過程
- 11. DB2更改存儲過程
- 12. DB2存儲過程try catch
- 13. DB2 VARCHAR Unicode數據存儲
- 14. db2存儲過程格式
- 15. 在配置中存儲配置
- 16. phpMyAdmin配置存儲未完全配置
- 17. 在mysql中配置utf8
- 18. 休眠mysql utf8配置
- 19. Play Framework(2.4)和DB2配置
- 20. 在DB2中配置SSL LUW
- 21. 在哪裏存儲配置
- 22. phpMyAdmin配置存儲錯誤
- 23. 存儲配置沒有MySQL
- 24. 存儲python腳本配置
- 25. phpMyAdmin配置存儲問題
- 26. 芝麻存儲庫配置
- 27. 全局Hadoop配置存儲
- 28. 谷歌存儲配置
- 29. Openshift節點存儲配置
- 30. 存儲網站配置
我不認爲這是一個「問題」 - 它是有據可查的行爲。答案取決於您未指出的DB2版本和平臺。 – mustaccio
db2 v10.5,我在Win上運行它。我讀過,我可以使用VARGRAPHIC –