DB2中的LONG VARCHAR類型 DB2 中LONG VARCHAR 與VARCHAR 數據類型都用來存儲長文本,但是它們之間的用法有很大不同。VARCHAR 與普通數據類型一樣,要使用到bufferpool,在創建表時受制於最大的bufferpool page size,而LONG VARCHAR 則與LOB數據一樣,有單獨的存儲區域,不需要使用bufferpool,所以在創建表時也不需要有大的bufferpool存在,在訪問這些數據時,直接操作磁盤IO進行存取,所以速度更快。但LONG VARCHAR 數據類型的使用也相應受到限制,不能用在以下語句中: DISTINCT GROUP BY ORDER BY BETWEEN/IN LIKE 子查詢內部 列函數中 LONG VARCHAR 允許的數據最大長度為32700字節,VARCHAR 最大允許32672字節。在CLP與CE中操作LONG VARCHAR 會有一些不期盼的事情發生,比如對於長度大於8192字節的LONG VARCHAR列使用以下語句,會導致截斷,並且不給出任何warning。
SELECT longvarchar FROM table;
使用以下語句也是不安全的,因為一旦列長度超出VARCHAR 允許的最大長度32672,語句將會失敗。
SELECT VARCHAR(longvarchar) FROM table;
安全的寫法是使用表達式CAST
SELECT CAST(langvarchar AS VARCHAR(32672)) FROM table;