国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

oracle字符集

2019-11-08 20:28:13
字體:
來源:轉載
供稿:網友

本文給大家講述下遇到的Oracle字符集的問題。

前些日子公司剛剛把oracle10g升級到11g,在運行項目的時候是正常的,突然發現只有在使用oracle存儲過程新增的時候報空指針異常。

開始以為是客戶端的值沒有傳成功,經過調試,發現java數組轉oracle對象的時候出現亂碼。于是執行命令select * from nls_database_parameters,顯示字符集ZHS16GBK,原來的10G的字符集是AL32UTF8,終于找到了癥結所在,是字符集的問題。

下面是最初oracle對象定義:

 CREATE TYPE type_name AS OBJECT(   username varchar(20) )

為了解決問題,網上了很多資料,花了很多步驟

1.原先以為是ORACLE驅動包的問題,升級了ojdbc.jar,發現沒有解決。

2.根據網上資料介紹說是要引入包nls_charset12.jar和orail18n.jar,于是我又下載了并引入,

發現不是報Java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOG

就是項目運行不了。依然沒法解決。

3.皇天不負有心人終于我把varchar2改成nvarchar2完美解決。

最后的對象定義(正確解決):

 CREATE TYPE type_name AS OBJECT(  username nvarcahr2(20) )

最后說一下varchar2與nvarchar2的區別

NVARCHAR2和VARCHAR2的區別,從使用角度來看區別在于:NVARCHAR2在計算長度時和字符集相關的,例如數據庫是中文字符集時以長度10為例,則

1、NVARCHAR2(10)是可以存進去10個漢字的,如果用來存英文也只能存10個字符。

2、而VARCHAR2(10)的話,則只能存進5個漢字,英文則可以存10個


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋宁县| 开江县| 南川市| 罗城| 夏邑县| 嵊泗县| 应城市| 唐海县| 建阳市| 惠水县| 温泉县| 茌平县| 遂平县| 临澧县| 运城市| 清水县| 台南县| 张掖市| 洪泽县| 商洛市| 黑水县| 惠安县| 台北市| 昌黎县| 凌海市| 集贤县| 黔西县| 含山县| 闵行区| 乡城县| 汉寿县| 明光市| 宁海县| 平顺县| 和政县| 伊春市| 潜山县| 庆云县| 大丰市| 乌拉特后旗| 延庆县|