在使用Oracle數(shù)據(jù)庫作為項目數(shù)據(jù)庫進行項目開發(fā)的時候,我們往往會將漢字添加到數(shù)據(jù)庫中,有時候會因為所給字段的長度不足,導(dǎo)致在將漢字存入數(shù)據(jù)庫中的時候會拋出”數(shù)字或值錯誤 : 字符串緩沖區(qū)太小“,返回來查看所插入的數(shù)據(jù),發(fā)現(xiàn)長度并沒有超出字段的給定長度,這是怎么回事,其實既然程序已經(jīng)拋出這個錯了,那么說明你定義的字段的長度是有問題的,接下來我們排查這個問題。
1、查看Oracle數(shù)據(jù)庫的字符集編碼select * from nls_database_parameters d where d.PARAMETER='NLS_CHARACTERSET';
2、如果編碼格式是AL32UTF8或者UTF8,那么在這種編碼格式下一個漢字所占用字符長度就是3個長度;如果編碼格式是ZHS16GBK,那么一個漢字占用長度就是2
3、根據(jù)編碼格式設(shè)置字段的長度,就能盡量避免字段超長這種問題
新聞熱點
疑難解答