国产探花免费观看_亚洲丰满少妇自慰呻吟_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個


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赫章县| 杂多县| 盐城市| 安泽县| 任丘市| 广德县| 平泉县| 南投市| 托里县| 宝坻区| 图片| 唐海县| 南充市| 揭西县| 泗洪县| 桃源县| 巴林右旗| 黑水县| 凤阳县| 宁波市| 黑龙江省| 禄丰县| 湘西| 灵台县| 门源| 梁山县| 郴州市| 伽师县| 抚州市| 上犹县| 南陵县| 松阳县| 车险| 剑河县| 随州市| 藁城市| 天津市| 定结县| 龙山县| 陈巴尔虎旗| 寿宁县|