真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle亂碼怎么轉碼,Oracle字符集亂碼

如何處理Oracle客戶端查詢亂碼問題

oracle數(shù)據(jù)庫查詢時出現(xiàn)亂碼,很可能是該數(shù)據(jù)庫的字符集設定不支持中文,但是表中數(shù)據(jù)含有中文,所以變?yōu)閬y碼。

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了榕江免費建站歡迎大家使用!

如果是字符集原因,解決方法如下:

1、shutdown immediate; 關閉數(shù)據(jù)庫

2、startup mount; 開啟數(shù)據(jù)庫至掛載模式(只掛實例,不啟動數(shù)據(jù)庫)

3、alter system enable restricted session;開啟會話限制

4、alter system set aq_tm_processes=0;修改系統(tǒng)參數(shù)

5、alter system set job_queue_processes=0;修改系統(tǒng)參數(shù)

6、alter database open;啟動數(shù)據(jù)庫為open

7、alter database national character set internal_user (zhs16gbk);修改字符集

8、alter system disable restricted session;關閉會話限制

括號內可填寫字符集類型,zhs16gbk、AL32UTF8等字符集都支持中文。

Oracle數(shù)據(jù)出現(xiàn)中文亂碼怎么解決

1. 服務器指定字符集與客戶字符集不同,而與加載數(shù)據(jù)字符集一致。

解決方法:對于這種情況,只需要設置客戶端字符集與服務器端字符集一致就可以了,具體操作如下:

* 查看當前字符集:

SQL select * from sys.props$

2 WHERE NAME=‘NLS_CHARACTERSET’;

NAME value$

NLS_CHARACTERSET ZHS16GBK

可以看出,現(xiàn)在服務器端Oracle數(shù)據(jù)庫的字符集為‘ZHS16GBK’

* 根據(jù)服務器的字符集在客戶端作相應的配置或者安裝Oracle的客戶端軟件時指定:

如果還沒安裝客戶端,那么在安裝客戶端時,指定與服務器相吻合的字符集即可;如果已經(jīng)安裝好了客戶端,并且客戶端為 sql*net 2.0 以下版本,進入Windows的系統(tǒng)目錄,編輯oracle.ini文件,用US7ASCII替換原字符集,重新啟動計算機,設置生效;否則,如果,客戶端為 sql*net 2.0 以上版本,在Win98 下 運 行REGEDIT,第一步選HKEY_LOCAL_MACHINE,第二步選擇SOFTWARE, 第三步選擇 Oracle, 第四步選擇 NLS_LANG, 鍵 入 與服 務 器 端 相 同 的 字 符 集

(本例為:HKEY_LOCAL_MACHINE/

SOFTWARE/ORACLE/NLS_LANG :AMERICAN _ AMERICA. ZHS16GBK)。

如果是UNIX客戶端,則:

SQL conn / as sysdba

Connected.

SQL SQL UPDATE sys.PROPS$ SET value$=‘SIMPLIFIED CHINESE’

2 WHERE NAME=‘NLS_LANGUAGE’;

2. 服務器指定字符集與客戶字符集相同,與加載數(shù)據(jù)字符集不一致。

解決方法:強制加載數(shù)據(jù)字符集與服務器端字符集一致。要做到這一點,可以通過重新創(chuàng)建數(shù)據(jù)庫,并選擇與原卸出數(shù)據(jù)一致的字符集,然后IMP數(shù)據(jù),這種情況僅僅適用于空庫和具有同一種字符集的數(shù)據(jù)。

解決這類問題,也可以先將數(shù)據(jù)加載到具有相同字符集的服務器上,然后用轉換工具卸出為foxbase 格式或access格式數(shù)據(jù)庫,再用轉換工具轉入到不同字符集的Oracle數(shù)據(jù)庫中,這樣就避免了Oracle字符集的困擾。目前數(shù)據(jù)庫格式轉換的工具很多,像power builder5.0以上版本提供的pipeline及Microsoft Access數(shù)據(jù)庫提供的數(shù)據(jù)導入/導出功能等。

3. 服務器指定字符集與客戶字符集不同,與輸入數(shù)據(jù)字符集不一致。

對于這種情況,目前為止都還沒有太好的解決方法。

通過上面的了解,我們知道,導致在后期使用數(shù)據(jù)庫時出現(xiàn)種種關于字符集的問題,多半是由于在數(shù)據(jù)庫設計、安裝之初沒有很好地考慮到以后的需要,所以,我們完全可以通過在服務器上和客戶端使用相同的字符集來避免由此類問題引出的麻煩

怎樣修改查看Oracle字符集

a.數(shù)據(jù)庫服務器字符集select * from nls_database_parameters,其來源于props$,是表示數(shù)據(jù)庫的字符集。

b.客戶端字符集環(huán)境select * from nls_instance_parameters,其來源于v$parameter,

表示客戶端的字符集的設置,可能是參數(shù)文件,環(huán)境變量或者是注冊表

c.會話字符集環(huán)境 select * from nls_session_parameters,其來源于v$nls_parameters,表示會話自己的設置,可能是會話的環(huán)境變量或者是alter session完成,如果會話沒有特殊的設置,將與nls_instance_parameters一致。

客戶端的字符集要求與服務器一致,才能正確顯示數(shù)據(jù)庫的非Ascii字符。如果多個設置存在的時候,alter session環(huán)境變量注冊表參數(shù)文件

實際情況

我用select * from nls_database_parameters

PARAMETER VALUE

------------------------------ ------------------------------

NLS_LANGUAGE AMERICAN

NLS_TERRITORY AMERICA

NLS_CURRENCY $

NLS_ISO_CURRENCY AMERICA

NLS_NUMERIC_CHARACTERS .,

NLS_CHARACTERSET ZHS16GBK

NLS_CALENDAR GREGORIAN

NLS_DATE_FORMAT DD-MON-RR

NLS_DATE_LANGUAGE AMERICAN

NLS_SORT BINARY

NLS_TIME_FORMAT HH.MI.SSXFF AM

PARAMETER VALUE

------------------------------ ------------------------------

NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY $

NLS_COMP BINARY

NLS_LENGTH_SEMANTICS BYTE

NLS_NCHAR_CONV_EXCP FALSE

NLS_NCHAR_CHARACTERSET AL16UTF16

NLS_RDBMS_VERSION 10.2.0.1.0

說明我在創(chuàng)建數(shù)據(jù)庫時指定的字符集是ZHS16GBK,我用

update sys.props$ set value$='AL32UTF8' where name='NLS_CHARACTERSET';

修改了字符集,但插入中文時仍然有問題,這或許就如上面資料所說的通過修改SYS.PROPS$來修改主要是對應客戶端的顯示,與存儲無關,

所以仍舊是亂碼。

然后我重新創(chuàng)建了個數(shù)據(jù)庫,指定字符集為AL32UTF8,插入中文就沒問題了。

可見我們如果要在數(shù)據(jù)庫中顯示中文,在創(chuàng)建數(shù)據(jù)庫時一定喲指定好所用的字符集。

如何解決Oracle數(shù)據(jù)庫中文亂碼問題

一、pl/sql developer 中文字段顯示亂碼

原因:因為數(shù)據(jù)庫的編號格式和pl /sql developer的編碼格式不統(tǒng)一造成的。

二、查看和修改oracle數(shù)據(jù)庫字符集:

select userenv('language') from dual;

查詢結果:

SIMPLIFIED CHINESE_CHINA.AL32UTF8

--修改oracle數(shù)據(jù)庫字符集:(在SQL Plus中)

sql conn / as sysdba;

sql shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

sql startup mount;

oracle instance started.

total system global area 135337420 bytes

fixed size 452044 bytes

variable size 109051904 bytes

database buffers 25165824 bytes

redo buffers 667648 bytes

database mounted.

sql alter system enable restricted session;

system altered.

sql alter system set job_queue_processes=0;

ORACLE不同數(shù)據(jù)庫字符集數(shù)據(jù)交互,如何轉換亂碼?

1。select * from v$nls_parameters 查詢nls的參數(shù),獲得數(shù)據(jù)庫服務器端的字符編碼 NLS_LANGUAGE NLS_CHARACTERSET 2。修改本地環(huán)境變量,設置 NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK //這個是我們的數(shù)據(jù)庫字符編碼 NLS_LANG格式: NLS_LANG = language_territory.charset 有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。其中:language 指定服務器消息的語言。 territory 指定服務器的日期和數(shù)字格式。 charset 指定字符集 需要保證要設置客戶端字符集與服務器端字符集一致

怎么解決JDBC讀ORACLE的亂碼問題

1. 將編譯/運行的編碼設置成與Oracle一樣的編碼.

編譯.java文件 javac -encoding ISO8859-1 ...

運行 java -Dfile.encoding=ISO8859-1

注意: 如果你的應用設計到JSP/文件I/O, 相應的要使用ISO8859-1, 如果大量這樣的I/O, 這樣的方法不好用.

2. 使用自己寫的JDBC包裝器代替Oracle的ResultSet/Statement...

原理是在包裝器內部實現(xiàn)編碼轉換, 而應用就不需要每個字段轉一次了.

注意: 需要包裝的東西包括Connection, Statement, CallableStatment, PreparedStatement, ResultSet 如果用到JDBC2.0, 還要包裝DataSource. 包裝比較簡單, 但向下兼容差, 如Jdk1.3 包裝后, jdk1.4還要重新包裝一次, 比較繁瑣.


本文題目:oracle亂碼怎么轉碼,Oracle字符集亂碼
文章URL:http://weahome.cn/article/dscshoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部