最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#連接ORACLE出現(xiàn)亂碼問(wèn)題的解決方法

 更新時(shí)間:2021年10月01日 22:52:39   作者:make1828  
最近接觸c#的一個(gè)項(xiàng)目,連接SqlServer數(shù)據(jù)庫(kù)倒也是很好用,但是遇到oracle數(shù)據(jù)庫(kù)就出現(xiàn)亂碼了,于是搜索好多資料,具體解決方法如下

以前做過(guò)java項(xiàng)目,連接各種數(shù)據(jù)庫(kù)都得心應(yīng)手,最近接觸c#的一個(gè)項(xiàng)目,連接SqlServer數(shù)據(jù)庫(kù)倒也是很好用,但是遇到oracle數(shù)據(jù)庫(kù)就萎了,于是搜索好多資料,有使用oracle.datamanager.dataaccess的,有System.Data.OracleClient.OracleConnection的,也有System.Data.OleDb.OdbcConnection連接的,但前兩種方式都試了,依舊如此亂碼,于是就試試最后一種:

方法一

連接字符串:

"Provider=oraoledb.oracle;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.10.10)(PORT = 1521)))(CONNECT_DATA = (SID = orcl))) ;User Id=user;Password=user"

報(bào)錯(cuò):未注冊(cè)數(shù)據(jù)提供程序!

于是繼續(xù)搜索,網(wǎng)上說(shuō)需要安裝oracle相關(guān)連接組件,這就很麻煩了,不可能所有機(jī)子都安裝這個(gè)組件

于是繼續(xù)找解決方法,最后發(fā)現(xiàn)以下連接是可以的,也就是在使用System.Data.OracleClient.OracleConnection時(shí)候,不再提示注冊(cè)程序之類的, 問(wèn)題終于解決了,查詢結(jié)果也不亂碼!

連接字符串:

"Provider=MSDAORA.1;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =
10.20.10.10
)(PORT = 1521)))(CONNECT_DATA = (SID = orcl))) ;User Id=lswen;Password=1169"

注意:Provider=MSDAORA.1; 而不是Provider=oraoledb.oracle;

方法二

1.打開(kāi)注冊(cè)表:開(kāi)始-運(yùn)行-regedit

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1/OLEDB
在右側(cè)點(diǎn)鼠標(biāo)右鍵--新建--字符串值--名稱改為:NLS_LANG 值設(shè)為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

2.我的電腦-屬性-高級(jí)系統(tǒng)設(shè)置-環(huán)境變量-在系統(tǒng)變量下方點(diǎn)擊新建--變量名:NLS_LANG 變量值: SIMPLIFIED CHINESE_CHINA.ZHS16GBK

方法三

make1828同學(xué)給出的解決方法

1:先查詢oralce的字符編碼:select userenv('language') from dual;

2:在環(huán)境變量中設(shè)置NLS_LANG變量:

3:配置連接字符串:

Provider=OraOLEDB.Oracle;User ID=***;Password=***;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = ***)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))

4:安裝Oracle客戶端:(可自行網(wǎng)上搜索下載)

5:需要的可用下載一個(gè)PLSQL工具

可以到腳本之家下載即可 http://m.fzitv.net/softs/664139.html

方法四

最近我用程序讀取oracle數(shù)據(jù)庫(kù)中數(shù)據(jù)時(shí)發(fā)現(xiàn)中文全部是亂碼。于是我展開(kāi)了一系列的辦法最終解決了此問(wèn)題。

工作環(huán)境:服務(wù)器 windows 2003+ oracle。
服務(wù)器字符集 SIMPLIFIED CHINESE_CHINA.WE8DEC。
編程環(huán)境 VS2005,C#,PLSQL。

方案一:

利用System.Data.OracleClient.OracleConnection類訪問(wèn)數(shù)據(jù)庫(kù)。

連接字符串:

"Data Source= (DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.0.5)(PORT = 1521)))(CONNECT_DATA = (SID = DEV))) ;User Id=lswen;Password=1169"

將本地字符集改為與服務(wù)器相同。

打開(kāi)注冊(cè)表regdit:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEO 中NLS_LANG改為: SIMPLIFIED CHINESE_CHINA.WE8DEC。

這個(gè)方法簡(jiǎn)直就像噩夢(mèng),根本解決不了,網(wǎng)上有很多人發(fā)表用這種方法。答案是片面的,如果服務(wù)器的字符集是: ZHS16GBK那么此法就可以解決。字符集WE8DEC是西歐字符集本身包含的漢字就不多,之所以它允許用存入漢字是因?yàn)樗鼘⒁粋€(gè)漢字拆分為兩個(gè)字節(jié)存儲(chǔ)方式,其他中文字符集的客戶端無(wú)法直接還原為一個(gè)中文。所以必須保持客戶端與服務(wù)器一致-----這網(wǎng)上看到的不知道自己的理解是否對(duì)。

方案一 失敗。

方案二 :

利用System.Data.OleDb.OdbcConnection類訪問(wèn)數(shù)據(jù)庫(kù)。

連接字符串:

"Provider=MSDAORA.1;Data Source=(DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.0.5)(PORT = 1521)))(CONNECT_DATA = (SID = DEV))) ;User Id=lswen;Password=1169"

將本地字符集改為與服務(wù)器相同,方法同方案一相同。
這一下問(wèn)題終于解決了。

強(qiáng)調(diào)連接字符串因該使用Provider=MSDAORA.1; 不能使用Provider=oraoledb.oracle;

方案二 成功了。

總結(jié) :

不管是WE8DEC,還是其他一些西歐字符集都存在這樣的問(wèn)題,用第二種方案應(yīng)該都可以解決。

相關(guān)文章

  • Oracle基礎(chǔ)學(xué)習(xí)之簡(jiǎn)單查詢和限定查詢

    Oracle基礎(chǔ)學(xué)習(xí)之簡(jiǎn)單查詢和限定查詢

    相信對(duì)于每個(gè)剛接觸數(shù)據(jù)庫(kù)的朋友們來(lái)說(shuō),查詢是首先要學(xué)會(huì)的,本文主要給大家介紹了Oracle中的簡(jiǎn)單查詢和限定查詢,文中通過(guò)示例代碼與文字說(shuō)明給大家介紹的很詳細(xì),相信對(duì)大家的的理解和學(xué)習(xí)會(huì)很有幫助,下面感興趣的朋友們一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • MySQL安全性指南 (1)(轉(zhuǎn))

    MySQL安全性指南 (1)(轉(zhuǎn))

    MySQL安全性指南 (1)(轉(zhuǎn))...
    2007-03-03
  • Oracle 存儲(chǔ)過(guò)程教程

    Oracle 存儲(chǔ)過(guò)程教程

    一個(gè)簡(jiǎn)單的oracle分頁(yè)存儲(chǔ)過(guò)程的實(shí)現(xiàn)和調(diào)用。在看了眾多的分頁(yè)存儲(chǔ)過(guò)程以后發(fā)現(xiàn)都是針對(duì)sqlserver的,而沒(méi)有oracle的,因此想寫一個(gè)關(guān)于oracle的存儲(chǔ)過(guò)程,因?yàn)槲矣玫降臄?shù)據(jù)庫(kù)是oracle。
    2009-10-10
  • oralce 計(jì)算時(shí)間差的實(shí)現(xiàn)

    oralce 計(jì)算時(shí)間差的實(shí)現(xiàn)

    這篇文章主要介紹了oralce 計(jì)算時(shí)間差的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Oracle 中 decode 函數(shù)用法

    Oracle 中 decode 函數(shù)用法

    這篇文章主要介紹了Oracle 中 decode 函數(shù)用法的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Oracle清理監(jiān)聽(tīng)文件的幾種安全方式

    Oracle清理監(jiān)聽(tīng)文件的幾種安全方式

    本文介紹了安全刪除或清理Oracle監(jiān)聽(tīng)日志文件的方法,推薦使用lsnrctl重新啟動(dòng)監(jiān)聽(tīng)或在線截?cái)嗳罩?避免直接刪除正在寫入的文件,需要的朋友可以參考下
    2025-12-12
  • Oracle?DG?的歸檔缺失修復(fù)方法

    Oracle?DG?的歸檔缺失修復(fù)方法

    文章介紹了Oracle DG歸檔缺失的修復(fù)方法,包括檢查歸檔同步情況、查看GAP日志應(yīng)用情況以及不同的修復(fù)思路,如歸檔還在主庫(kù)、歸檔已在備庫(kù)或歸檔已被刪除等,感興趣的朋友一起看看吧
    2025-02-02
  • 教你使用PLSQLDeveloper14連接Oracle11g的詳細(xì)過(guò)程

    教你使用PLSQLDeveloper14連接Oracle11g的詳細(xì)過(guò)程

    今天給大家?guī)?lái)一篇教程關(guān)于用PLSQLDeveloper14連接Oracle11g的詳細(xì)過(guò)程,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-09-09
  • oracle表空間的創(chuàng)建及dmp 文件的導(dǎo)入(推薦)

    oracle表空間的創(chuàng)建及dmp 文件的導(dǎo)入(推薦)

    這篇文章主要介紹了oracle表空間的創(chuàng)建及dmp 文件的導(dǎo)入,需非常不錯(cuò),具有參考借鑒價(jià)值,要的朋友可以參考下
    2017-08-08
  • Oracle相關(guān)組件版本信息的介紹

    Oracle相關(guān)組件版本信息的介紹

    今天小編就為大家分享一篇關(guān)于Oracle相關(guān)組件版本信息的介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12

最新評(píng)論

墨竹工卡县| 盐源县| 济宁市| 陇川县| 亚东县| 禄劝| 乌海市| 溆浦县| 宁阳县| 神木县| 静安区| 琼中| 合阳县| 三河市| 成安县| 奉贤区| 青龙| 自治县| 栖霞市| 霍城县| 赤水市| 辛集市| 湘乡市| 松桃| 武清区| 蒲江县| 盱眙县| 德保县| 嘉定区| 牡丹江市| 泾川县| 桐梓县| 海林市| 贺兰县| 长兴县| 商城县| 宕昌县| 姚安县| 井冈山市| 思茅市| 南涧|