日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

查看和修改Oracle数据库服务器端的字符集

發(fā)布時(shí)間:2023/12/4 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查看和修改Oracle数据库服务器端的字符集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Oracle數(shù)據(jù)庫(kù)查看和修改服務(wù)器端的字符集的方法是本文主要要介紹的內(nèi)容,接下來救讓我們一起來了解一下這部分內(nèi)容。


A、oracle server 端字符集查詢


select userenv(‘language’) from dual


其中NLS_CHARACTERSET 為server端字符集


NLS_LANGUAGE 為 server端字符顯示形式


B、查詢oracle client端的字符集


$echo $NLS_LANG


如果發(fā)現(xiàn)你select 出來的數(shù)據(jù)是亂碼,請(qǐng)把client端的字符集配置成與linux操作系統(tǒng)相同的字符集。如果還是有亂碼,則有可能是數(shù)據(jù)庫(kù)中的數(shù)據(jù)存在問題,或者是oracle服務(wù)端的配置存在問題。


C、server端字符集修改


將數(shù)據(jù)庫(kù)啟動(dòng)到RESTRICTED模式下做字符集更改:

  • SQL>?conn?/as?sysdba ?
  • Connected. ?
  • SQL>?shutdown?immediate; ?
  • Database?closed. ?
  • Database?dismounted. ?
  • ORACLE?instance?shut?down. ?
  • SQL>?startup?mount ?
  • ORACLE?instance?started. ?
  • Total?System?Global?Area?236000356?bytes ?
  • Fixed?Size???????????????????451684?bytes ?
  • Variable?Size?????????????201326592?bytes ?
  • Database?Buffers???????????33554432?bytes ?
  • Redo?Buffers?????????????????667648?bytes ?
  • Database?mounted. ?
  • SQL>?ALTER?SYSTEM?ENABLE?RESTRICTED?SESSION; ?
  • System?altered. ?
  • SQL>?ALTER?SYSTEM?SET?JOB_QUEUE_PROCESSES=0; ?
  • System?altered. ?
  • SQL>?ALTER?SYSTEM?SET?AQ_TM_PROCESSES=0; ?
  • System?altered. ?
  • SQL>?alter?database?open; ?
  • Database?altered. ?
  • 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?

  • 提示我們的字符集:新字符集必須為舊字符集的超集,這時(shí)我們可以跳過超集的檢查做更改:

  • SQL>?ALTER?DATABASE?character?set?INTERNAL_USE?ZHS16GBK; ?
  • Database?altered. ?
  • SQL>?select?*?from?v$nls_parameters; ?
  • 略 ?
  • 19?rows?selected.?

  • 重啟檢查是否更改完成:

  • SQL>?shutdown?immediate; ?
  • Database?closed. ?
  • Database?dismounted. ?
  • ORACLE?instance?shut?down. ?
  • SQL>?startup ?
  • ORACLE?instance?started. ?
  • Total?System?Global?Area?236000356?bytes ?
  • Fixed?Size???????????????????451684?bytes ?
  • Variable?Size?????????????201326592?bytes ?
  • Database?Buffers???????????33554432?bytes ?
  • Redo?Buffers?????????????????667648?bytes ?
  • Database?mounted. ?
  • Database?opened. ?
  • SQL>?select?*?from?v$nls_parameters; ?
  • 略 ?
  • 19?rows?selected.?

  • 我們看到這個(gè)過程和之前ALTER DATABASE CHARACTER SET操作的內(nèi)部過程是完全相同的,也就是說INTERNAL_USE提供的幫助就是使Oracle數(shù)據(jù)庫(kù)繞過了子集與超集的校驗(yàn).


    這一方法在某些方面是有用處的,比如測(cè)試;應(yīng)用于產(chǎn)品環(huán)境大家應(yīng)該格外小心,除了你以外,沒有人會(huì)為此帶來的后果負(fù)責(zé)。


    結(jié)語(我們不妨再說一次):


    對(duì)于DBA來說,有一個(gè)很重要的原則就是:不要把你的數(shù)據(jù)庫(kù)置于危險(xiǎn)的境地!


    這就要求我們,在進(jìn)行任何可能對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生改變的操作之前,先做有效的備份,很多DBA沒有備份的操作中得到了慘痛的教訓(xùn)。


    D、client端字符集修改


    在 /home/oracle與 /root用戶目錄下的.bash_profile中


    添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 語句


    關(guān)閉當(dāng)前ssh窗口。


    注意:NLS_LANG變量一定要配置正確否則會(huì)引起sqlplus 失效。


    本文轉(zhuǎn)自:http://database.51cto.com/art/201108/283596.htm

    ?

    

    總結(jié)

    以上是生活随笔為你收集整理的查看和修改Oracle数据库服务器端的字符集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。