以下是執行命令的全部過程:
第一步:啟動sqlplus
C:\Users\dszho>sqlplus
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 6月 22 09:56:04 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
第二步:使用system sysdba帳號登錄
請輸入用戶名: system as sysdba
輸入口令:
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
第三步:關閉數據庫
SQL> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
第四步:以mount啟動
SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 1862273600 bytes
Database Buffers 1543503872 bytes
Redo Buffers 16007168 bytes
數據庫裝載完畢。
第五步:調整session
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
系統已更改。
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
系統已更改。
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
系統已更改。
SQL> alter database open;
數據庫已更改。
第六步:修改字符集
SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
*
第 1 行出現錯誤:
ORA-12712: 新字符集必須為舊字符集的超集
SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
數據庫已更改。
SQL> select * from v$nls_parameters;
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE
NLS_TERRITORY
CHINA
NLS_CURRENCY
¥
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_ISO_CURRENCY
CHINA
NLS_NUMERIC_CHARACTERS
.,
NLS_CALENDAR
GREGORIAN
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_DATE_FORMAT
DD-MON-RR
NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE
NLS_CHARACTERSET
AL32UTF8
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_SORT
BINARY
NLS_TIME_FORMAT
HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY
¥
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16
NLS_COMP
BINARY
NLS_LENGTH_SEMANTICS
BYTE
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_NCHAR_CONV_EXCP
FALSE
已選擇19行。
第七步:關閉數據庫並重新啟動
SQL> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 1862273600 bytes
Database Buffers 1543503872 bytes
Redo Buffers 16007168 bytes
數據庫裝載完畢。
數據庫已經打開。
第八步:查看是否修改成功
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
可以看到已經修改成功。
每個人遇到的問題不一樣,所以要多多研究。
備注:遇到的問題
在PL/SQL中運行這些語句是不行的,而且可能導致所有帳號都無法通過PL/SQL進行登錄
解決辦法:啟動sqlplus,login:sys as sysdba 講session改回去。重啟電腦即可。
注意:
SERVICE_NAME要設置正確,否則會出現在PL/SQL中編碼未修改過來的問題。