更改oracle字元集

來源:互聯網
上載者:User

標籤:

修改oracle字元集

方法/步驟
  1.  

    oracle資料庫的字元集更改 

     

    A、oracle server 端 字元集查詢 

     

    select userenv(‘language‘) from dual 

     

    其中NLS_CHARACTERSET 為server端字元集 

     

    NLS_LANGUAGE 為 server端字元顯示形式 

     

    B、查詢oracle client端的字元集 

     

    $echo $NLS_LANG 

    如果發現你select 出來的資料是亂碼,請把client端的字元集配置成與linux作業系統相同的字元集。如果還是有亂碼,則有可能是資料庫中的資料存在問題,或者是oracle服務端的配置存在問題。 

     

    C、server端字元集修改 

     

    ***************************************************************** 

     

    *  更改字元集步驟方法(WE8ISO8859P1 --> ZHS16GBK)            * 

     

    ***************************************************************** 

     

    SQL> 

    將資料庫啟動到RESTRICTED模式下做字元集更改: 

    cmd命令,如下:

     

    (密碼部分為格式為:[email protected] as sysdba;)斷行符號。

     

    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 

     

    提示我們的字元集:新字元集必須為舊字元集的超集,這時我們可以跳過超集的檢查做更改: 

    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. 

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

     

    D、client端字元集修改 

     

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

     

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

     

    關閉當前ssh視窗。 

    (本人在這部分沒試過,更改環境變數應該就要可以了,即在環境變數中NLS_LANG:WE8ISO8859P1)

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

    注意:在startup mount 可能會報:qlplus:ORA-12514: TNS:listener does not currently know of service requested in connect descri
    這時要在服務端的listener.ora檔案中加入以下紅色部分,注意修改相應的參數值,如下:

     

    SID_LIST_LISTENER =

      (SID_LIST =

        (SID_DESC =

          (SID_NAME = PLSExtProc)

          (ORACLE_HOME =C:\app\letto\product\11.2.0\dbhome_1)

          (PROGRAM = extproc)

        )

       (SID_DESC =
        (GLOBAL_DBNAME = myorcl)     
          (ORACLE_HOME = C:\app\letto\product\11.2.0\dbhome_1)           
          (SID_NAME = myorcl)   
        )
      )

更改oracle字元集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.