1. 程式人生 > >Oracle資料庫字符集和客戶端字符集不同,強制轉化可能會造成不可預期的後果

Oracle資料庫字符集和客戶端字符集不同,強制轉化可能會造成不可預期的後果

1. NLS_LANG 引數組成
NLS_LANG引數由以下部分組成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>

NLS_LANG各部分含義如下:
LANGUAGE指定:
-Oracle訊息使用的語言
-日期中月份和日顯示
TERRITORY指定
-貨幣和數字格式
-地區和計算星期及日期的習慣
CHARACTERSET:
-控制客戶端應用程式使用的字符集
通常設定或者等於客戶端(如Windows)內碼表 
或者對於unicode應用設定為UTF8

在Windows上檢視當前系統的內碼表可以使用chcp命令:
E:\>chcp
 活動的內碼表: 936

內碼表936也就是中文字符集 GBK,在Microsoft的官方站點上,


2. 檢視 NLS_LANG 的方法
Windows使用:

echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK

Unix使用:

env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK

Windows客戶端設定,可以在登錄檔中更改NLS_LANG,具體鍵值位於:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多個ORACLE_HOME時系統編號。


3. 檢視資料庫當前字符集引數設定
SELECT * FROM v$nls_parameters;

select * from nls_database_parameters

select userenv(‘language’) from dual;


4. 檢視資料庫可用字符集引數設定
SELECT * FROM v$nls_valid_values;


5. 客戶端 NLS_LANG 的設定方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通過修改登錄檔鍵值永久設定
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG

Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以編輯 bash_profile 檔案進行永久設定
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
# 使 bash_profile 設定生效
source .bash_profile

相關推薦

Oracle資料庫字符集客戶字符集不同強制轉化可能造成不可預期後果

1. NLS_LANG 引數組成 NLS_LANG引數由以下部分組成: NLS_LANG=<Language>_<Territory>.<Clients Characterset> NLS_LANG各部分含義如下: LANGUAGE指定: -Oracle訊息使用的語言

oracle資料庫字符集客戶字符集(2%)是不同的,字符集轉化可能造成不可預期後果

  轉載請在文章顯眼位置註明出處:https://www.cnblogs.com/sunshine5683/p/10036321.html 今天在plsql連線oracle時候報錯提示“資料庫字符集和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”如下圖: 經過查閱資料發

oracle服務器客戶字符集的查看修改

ultraedit 組成 alter 錯誤 eat 數據 rom 必須 直接 文章來源:http://www.cnblogs.com/chenyan296076785/p/3533065.html 一、什麽是oracle字符集 Oracle字符集是一個字節數據的解釋的符號集

資料庫字符集(AL32UTF8)客戶字符集(2%)不同

       今天在安裝Oracle資料庫時出現的一個問題,“資料庫字符集(AL32UTF8)和客戶端字符集(2%)是不同的。字符集轉化可能會造成不可預期的後果”。         上網查了一些資料得知Oracle資

數據庫字符集(AL32UTF8)客戶字符集(2%)是不同

服務端 oracl ges 11g 解決 tle client 相同 解碼 登錄oracle數據庫時我們會遇到這樣的提示信息:“數據庫字符集(AL32UTF8)和客戶端字符集(2%)是不同的”。 這是由於數據庫服務端和客戶端的字符集不一致所造成的,服務端字符集和客戶端字符集

Linux下更改oracle客戶字符集服務字符集

啟動 dia 系統 detail roc gb2 set rom com from:http://blog.csdn.net/chid/article/details/6166506 Linux 下更改 oracle 客戶端字符集和服務端字符集 1.Linux 下更改

oracle檢視字符集後修改oracle服務客戶字符集的步驟

1.oracle server端字符集查詢 程式碼如下: select userenv ('language')  from dual; 或: col PARAMETER format a20;  col VALUE format a30; SQL> sel

plsql 登入後提示資料庫字符集(AL32UTF8)客戶字符集(ZHS16GBK)不一致

      最近開始學習oracle的時候出現了下面這樣的問題:                 在網上搜索了一些方法,終於找到了解決的方法: 首先大家都普遍說的 是這一

oracle伺服器客戶字符集的檢視修改

[Q]怎麼樣檢視資料庫字符集    [A]資料庫伺服器字符集select * from nls_database_parameters,其來源於props$,是表示資料庫的字符集。   客戶端字符集環境select * from nls_instance_paramete

plsql資料庫異常---plsql 登入後提示資料庫字符集(AL32UTF8)客戶字符集(ZHS16GBK)不一致

plsql 登入後提示: Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character set conversion may cause unexpected results.

Oracle的Webservice版本客戶版本不同的解決方法

在connectionStrings標籤下追加下面標籤。   <runtime>     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">       <dependentAs

網路程式設計之WCF程式設計:WCF服務客戶的建立回撥

1.概念 Windows Communication Foundation(WCF)是由微軟發展的一組資料通訊的應用程式開發介面,可以翻譯為Windows通訊介面。它是.NET框架的一部分,由 .NET Framework 3.0 開始引入。 WCF的終結點有三個要素組成

Socket程式設計服務客戶互相通訊實現簡單的聊天

客戶端兩個執行緒分別記錄讀和寫,服務端兩個執行緒分別記錄讀和寫; 客戶端程式碼: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import

oracle服務客戶字符集不同導致中文亂碼解決方案

use 修改環境變量 描述 image nls_lang oracle服務 環境 分析 導致 1.問題描述 用pl/sql登錄時,會提示“數據庫字符集(ZHS16GBK)和客戶端字符集(2%)是不同的,字符集轉化可能會造成不可預期的後果”,具體問題是中文亂碼,如下圖 2.

Oracle客戶字符集與服務字符集不同

整理前人的經驗,並通過自己的測試,留下筆記作為備忘. 前人經驗: http://blog.csdn.net/Dream19881003/article/details/6800056#comments 檢視服務端的字符集: select userenv(‘language’)

ORACLE 設定ORACLE客戶字符集

1、字符集的一些基本知識     字符集有很多種,最初的字符集是ASCII,由於ASCII支援的字元很有限,因此隨後又出現了很多的編碼方案,這些編碼方案大部分都是包括了ASCII的。EBCDIC編碼是另一個比較基本的編碼,它的部分字符采用了和ASCII不同的

oracle 客戶字符集設定

NLS_LANG=AMERICAN_AMERICA.AL32UTF8(oracle sqlplus提示顯示為英文,伺服器端字符集為中文,也可顯示中文) NLS_LANG=SIMPLIFIED CHIN

ORACLE客戶亂碼--修改Oracle客戶字符集

修改Oracle客戶端字符集方法: 1:可以通過修改登錄檔鍵值永久設定,類似於這樣的鍵值: HKEY_LOCAL_MACHINE/SOFTWARE/Oracle/HOME0下, 如一般的簡體中文 nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16

ORACLE pl/sqldeveloper 客戶亂碼--修改Oracle客戶字符集

一直在做日語專案 Oracle伺服器 是日語版本 為了訪問Oracle伺服器 在客戶端上安裝了pl/sqldeveloper 不知道怎麼搞得 通過pl/sql照會資料後亂碼了 通過SQLWINDOWS 執行以下命令後 select * from v$nls_paramete

Oracle官網下載 Oracle11 G 資料可客戶操作

1.準備一個Oracle的官網賬號 使用者名稱:[email protected] 密碼:LR4ever.1314   2.在搜尋框中輸入Oracle 11 G   3.點選Database Downloadds 4.選中要下載的對應的系統版本 &nb