oracle odbc 怎么設置能 支持中文

為舟山等地區用戶提供了全套網頁設計制作服務,及舟山網站建設行業解決方案。主營業務為成都網站設計、成都網站制作、外貿網站建設、舟山網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
: 你的數據庫編碼字符集設置的不對,中文請使用gbk、gb3212的字符集,oracle默認好像是unicode,unicode是不支持中文的
在Redhat上安裝Oracle 10g沒有設定字符集,采用的是操作系統默認字符集:WE8ISO8859P1,將字符集修改為:ZHS16GBK。由于過程不可逆,首先需要備份數據庫。
1.數據庫全備
2.查詢當前字符集
SQL select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?VALUE
---------------------------------------- ----------------------------------------
NLS_CHARACTERSET ? ? ? ? ? ? ? ? ? ? ? ? WE8ISO8859P1
3.關閉數據庫
SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
4.啟動數據庫到mount狀態
SQL startup mount
ORACLE instance started.
Total System Global Area ?205520896 bytes
Fixed Size ? ? ? ? ? ? ? ? ?1266608 bytes
Variable Size ? ? ? ? ? ? 100666448 bytes
Database Buffers ? ? ? ? ?100663296 bytes
Redo Buffers ? ? ? ? ? ? ? ?2924544 bytes
Database mounted.
5.限制session
SQL alter system enable restricted session;
System altered.
6.查詢相關參數并修改
SQL show parameter job_queue_processes;
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes ? ? ? ? ? ? ? ? ?integer ? ? 10
SQL show parameter aq_tm_processes;
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? ?VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes ? ? ? ? ? ? ? ? ? ? ?integer ? ? 0
SQL alter system set job_queue_processes=0;
System altered.
7.打開數據庫
SQL alter database open;
Database altered.
8.修改字符集
SQL alter database character set ZHS16GBK;
alter database character set ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
出現錯誤提示,新字符集必須是老字符集的超集,也就原來字符集是新字符集的子集,可以再Oracle官方文檔上查詢字符集包含關系。下面使用Oracle內部命令internal_use,跳過超集檢查,生產環境不建議使用此方法。
SQL alter database character set internal_use ZHS16GBK; ? ? ? ?
Database altered.
9.查詢當前字符集
SQL select * from nls_database_parameters where parameter='NLS_CHARACTERSET';
PARAMETER ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?VALUE
---------------------------------------- ----------------------------------------
NLS_CHARACTERSET ? ? ? ? ? ? ? ? ? ? ? ? ZHS16GBK
10.關閉數據庫
SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
11.啟動數據庫到mount狀態
SQL startup mount
ORACLE instance started.
Total System Global Area ?205520896 bytes
Fixed Size ? ? ? ? ? ? ? ? ?1266608 bytes
Variable Size ? ? ? ? ? ? 100666448 bytes
Database Buffers ? ? ? ? ?100663296 bytes
Redo Buffers ? ? ? ? ? ? ? ?2924544 bytes
Database mounted.
12.將相關參數改回原來值
SQL alter system set job_queue_processes=10;
System altered.
13.打開數據庫
SQL alter database open;
Database altered.
要么是你建庫時,選擇的字符集不支持中文,建議選擇AL16UTF16、AL32UTF8等unicode系列的字符集,支持多語言。
要么是你插入數據的字符集,與數據庫的字符集不一致;或者客戶端與服務端的字符集不一致。
已經建好的數據庫可以用以下命令修改字符集:
ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8
當然,前提是數據庫里存進去的數據沒有亂碼,且字段寬度能夠容納轉碼后的字符串。
怎樣讓Oracle支持中文
需要修改字符集。
Oracle修改服務器端字符集:
SQLSHUTDOWN IMMEDIATE;
SQLSTARTUP MOUNT;
SQLALTER SYSTEM ENABLE RESTRICTED SESSION;
SQLALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQLALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQLALTER DATABASE OPEN;
SQLALTER DATABASE CHARACTER SET ZHS16GBK;
什么腳本不能執行呀,發一個出來看一下。
可能是字符集的原因,我的是這樣:
select userenv('language') from dual;--SIMPLIFIED CHINESE_CHINA.ZHS16GBK
解決方法:
我的電腦---右擊---屬性---高級---環境變量---系統變量---新建
變量名:NLS_LANG
變量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,確定后再試試,OK。
新聞標題:oracle怎么支持中文 oracle數據庫語言設置中文
網頁鏈接:http://www.kartarina.com/article34/hepise.html
成都網站建設公司_創新互聯,為您提供網站建設、網站設計公司、營銷型網站建設、定制網站、云服務器、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯