oracle9i 更改字符集步驟方法
由於我們經常做不同資料庫的匯出匯入時遇到的伺服器的字符集不同,導致我們原有的無法正常匯入工作,這時需要我們做資料庫字符集的更改工作,字符集是在安裝資料庫時選定的,一旦資料庫建立之後,資料庫的字符集是不能改變的,如果要改變資料庫的字符集, 只有重新建立資料庫。但通常也可以在特定的條件下透過一些其他途徑來完成字符集的轉換(這裡強烈建議建立資料庫時就要考慮好字符集)[@more@]
單位元組=>單位元組
多位元組=>多位元組
且是子集到超集時,可以用alter database CHARACTER set 新的字符集;
通常對於單位元組向多位元組轉換和非子集到超集轉換時採用exp/imp+internal_use的方法
這裡只介紹WE8ISO8859P1->ZHS16GBK的步驟方法:
檢查當前的字符集為WE8ISO8859P1:
SQL> set wrap off
SQL> select * from v$nls_parameters;
PARAMETER VALUE
---------------------------------------------------------------- ---------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
---------------------------------------------------------------- ---------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET UTF8
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
19 rows selected.
SQL>
將資料庫啟動到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
提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;
PARAMETER VALUE
---------------------------------------------------------------- ---------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
---------------------------------------------------------------- ---------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET UTF8
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
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;
PARAMETER VALUE
---------------------------------------------------------------- ---------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
---------------------------------------------------------------- ---------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET UTF8
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
19 rows selected.
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-997557/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle9i RMAN備份及恢復步驟Oracle
- suse9上安裝oracle9i步驟Oracle
- Oracle9i RMAN備份及恢復步驟(zt)Oracle
- oracle更改字符集Oracle
- 修改oracle9i資料庫字符集的方法(轉)Oracle資料庫
- Win7系統電腦禁止更改預設印表機的設定方法步驟Win7
- oracle字符集的更改【轉】Oracle
- Linux下Oracle9i RMAN備份及恢復步驟(轉)LinuxOracle
- Oracle9i RAC 更改歸檔模式Oracle模式
- 用SQL建立索引的方法步驟SQL索引
- 資料庫設計方法步驟資料庫
- win10更改計算機名的步驟_window10怎麼更改計算機名Win10計算機
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- Oracle9i的詳細安裝與解除安裝步驟(有圖解)Oracle圖解
- 安裝gulp步驟和使用方法
- oracle資料庫的字符集更改Oracle資料庫
- win10環境變數怎麼設定 win10環境變數更改的方法步驟Win10變數
- Linux字符集不統一導致亂碼的解決步驟(轉)Linux
- 操作步驟
- 詳解學習C#的方法和步驟C#
- SQL Server最佳化方法、步驟和技術SQLServer
- vnc安裝步驟,vnc安裝步驟詳解VNC
- ORACLE11G 字符集更改(這裡更改為AL32UTF8)Oracle
- [MySQLFAQ]系列–如何更改MySQL的預設字符集MySql
- oracle11g更改資料庫字符集Oracle資料庫
- 字符集問題的初步探討(七)-字符集更改的內部操作
- AJAX 操作步驟
- MHA搭建步驟
- 部署MySQL步驟MySql
- 專案步驟
- 在Linux系統安裝flash的步驟方法Linux
- 重灌系統Win10詳細步驟和方法Win10
- 硬體的路由器連線方法與步驟路由器
- 關於資料遷移的方法、步驟和心得
- 網路入侵方法與一般步驟 1 (轉)
- 網路入侵方法與一般步驟2 (轉)
- 網路入侵方法與一般步驟3 (轉)
- 資料倉儲構建實施方法及步驟