成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle字符集的三大類型

數據庫 Oracle
以下的文章主要描述的是Oracle字符集問題,其中包括數據庫字符集, 客戶端字符集,終端字符集,的相關內容的介紹。

我們都知道Oracle字符集問題,可以分成三類: 即,數據庫字符集, sqlplus的字符集(客戶端字符集),以及 終端程序的字符集 (非Oracle的),以下的文章就是對Oracle字符集三種類型的主要描述。

1、數據庫字符集

數據庫字符集是所有字符問題的核心,只有數據庫本身的字符集正確了,客戶端的字符集才可能正確。這里只的客戶端包括sqlplus以及我們自己讀數據庫的應用程序。

 

在定位問題時,我們需要先看看數據庫當前是什么Oracle字符集。

 

1)查詢數據庫字符集

 

 

  1. select * from nls_database_parameters 

 

其中 nls_language表示了顯示方式, 就是sqlplus的程序的顯示字體,有SIMPLIFIED CHINESE,American america

 

其中 nls_characterset是字符集設定, 常用的一些Oracle字符集有UTF8,US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK, AL32UTF8

 

2)修改數據庫字符集

 

當發現數據庫字符集不正確時,如我們期望時GBK的,而數據庫當前是其他的,從而引起中文亂碼。這時我們需要修改數據庫字符集。步驟如下:

 

 

  1. $sqlplus /nolog  
  2. SQL>conn / as sysdba; 

 

 

若此時數據庫服務器已啟動,則先執行SHUTDOWN IMMEDIATE命令關閉數據庫服務器,然后執行以下命令:

 

 

  1. SQL>STARTUP MOUNT;  
  2. SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;  
  3. SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;  
  4. SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;  
  5. SQL>ALTER DATABASE OPEN;  
  6. SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;  
  7. SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;  
  8. SQL>SHUTDOWN IMMEDIATE;  
  9. SQL>STARTUP 

 

 

2 客戶端字符集

如果服務器端的Oracle字符集是正確的,而在客戶端下,如sqlplus仍然不能正確顯示中文,這一般是由于服務器端的字符集設定與客戶端的字符集設定不同造成的。只要將兩者修改一致就可以解決問題。

 

1)查詢客戶端字符集

 

 

  1. elect * from nls_instance_parameters 

 

客戶端字符集環境select * from nls_instance_parameters,其來源于v$parameter,

 

表示客戶端的字符集的設置,可能是參數文件,環境變量或者是注冊表

 

 

  1. select userenv('language') from dual; 

 

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

 

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

 

字符集要求一致,但是語言設置卻可以不同,語言設置建議用英文。如Oracle字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。 或者.zhs16gbk。注意zhs16gbk前面那個點是必須的哦??!

 

2) 修改客戶端字符集

Oracle 的sqlplus會去讀取OS中環境變量下的nls_lang信息

 

NSL_LANG包括三個部分(語言_地區.字符集)就是V$NLS_PARAMETERS表中的NLS_LANGUAGE,NLS_TERRITORY,NLS_CHARACTERSET

 

例如可以在cmd中鍵入

 

 

  1. set nls_lang="Simplified chinese_china.utf8" 
  2. set nls_lang="american_america.us7ascii" 
  3. set nls_lang="american_america.zhs16gbk" 
  4. set nls_lang="Simplified chinese_china.zhs16gbk" 
  5. set nls_lang=".utf8" 
  6. set nls_lang=".zhs16gbk" 
  7. set nls_lang=".us7ascii" 

 

 

unix下類似, 不過nls_lang要大寫NLS_LANG, 在.profile或這.bash_profile(根據你用的shell)里更改NLS_LANG可以長久保持環境變量值.

3、終端字符集

如果數據庫字符集和sqlplus的字符集一致, 還是不能正確顯示了, 那很可能就是你的終端應用程序的Oracle字符集不支持了. 例如你用bash登陸sqlplus, 如果你的bash是個小字符集, 那么就不能正常顯示了.linux修改bash的字符集, 可以先鍵入locale, 看有哪些環境變量, 再用export設置.

【編輯推薦】

  1. Oracle 字符串split的相關實際應用代碼介紹
  2. Oracle 10G for linux常用命令淺析
  3. Oracle數據庫中歸檔進程ARCH的詳細闡述
  4. Oracle索引整理的詳細描述
  5. Oracle merge into的實操示例

 

 

責任編輯:佚名 來源: 博客園
相關推薦

2011-04-11 10:59:33

Oracle字符集

2011-04-11 11:05:12

Oracle字符集

2010-04-30 10:16:22

Oracle字符集

2009-11-20 16:52:35

Oracle字符集

2011-05-20 13:24:39

oracle字符集

2010-05-12 14:05:54

MySQL安裝

2010-04-28 17:29:07

Oracle字符集

2019-09-28 22:41:18

OracleMySQL隱式數據

2025-02-27 09:13:03

2009-07-29 13:42:04

Oracle中文顯示

2010-05-06 14:40:59

Oracle字符集

2010-04-13 13:11:34

Oracle漢字顯示

2010-05-06 18:01:07

Oracle Expr

2010-06-02 17:59:19

MySQL字符集

2010-04-27 13:21:58

Oracle數據字符集

2010-04-13 12:23:34

Oracle數據庫

2010-04-13 12:42:59

Oracle連接

2010-04-13 13:33:37

Oracle字符集

2010-04-21 09:49:10

Oracle數據庫字符

2010-04-13 11:35:26

Oracle字符集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费看| 中文字幕一区在线观看视频 | 国产精品视频一 | 久久国产精品精品国产色婷婷 | 狠狠综合网 | 亚洲综合五月天婷婷 | 成人国产精品免费观看视频 | 二区视频 | 久久久久久久久久久久久久av | 国产精品久久久久一区二区三区 | 久草免费福利 | 男人的天堂久久 | 偷拍自拍网站 | 超碰97人人人人人蜜桃 | 久久视频一区 | 久久久久久高清 | 久草青青草| 亚洲欧美日韩在线一区二区 | www.亚洲一区 | 国产在线一区二 | 久久国产精品一区二区三区 | 国产电影一区 | 精品欧美乱码久久久久久 | 亚洲一区久久 | 91精品国产欧美一区二区 | 国产精品99久久久久久宅男 | 播放一级毛片 | 国产高清久久 | 国产激情视频网站 | 国产美女一区二区三区 | 亚洲自拍一区在线观看 | 国产精品视频区 | 国产一区二区三区在线看 | www.亚洲区 | 欧美不卡 | 精久久| 久久久久久电影 | 国产精选一区 | 亚洲精品一 | 久久久久成人精品亚洲国产 | 久久精品中文字幕 |