使用plsql時報出:ORA-06552 ORA-06553
定位:字符集問題。
確認字符集是否修改的不徹底:
SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET, DECODE(TYPE#, 1, DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'), 9, DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'), 96, DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'), 112, DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN FROM SYS.COL$ WHERE CHARSETFORM IN (1, 2) AND TYPE# IN (1, 9, 96, 112); |
如果上面的查詢的確顯示有多個字符集,則進行如下處理
SHUTDOWN IMMEDIATE;STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
COL VALUE NEW_VALUE CHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
COL VALUE NEW_VALUE NCHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
SHUTDOWN IMMEDIATE;
STARTUP;
再次啓動數據庫一遍
SHUTDOWN IMMEDIATE;
STARTUP;
問題得到了解決。
----------------------------------
其中可能會出現的問題:
ALTER DATABASE national CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12714: ??????????
---------
解決辦法:
點擊(此處)摺疊或打開
-
SQL> ALTER DATABASE character set INTERNAL_USE
ZHS16GBK;
-
- Database altered.
----------------------------
其中可能會出現的問題:ORA-01219
解決辦法:
ALTER
DATABASE OPEN;
----------------------------
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 73701404 bytes
Fixed Size 75804 bytes
Variable Size 56770560 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes
ORA-01102: ??? EXCLUSIVE ????????
解決辦法:停止沒有用的或者異常的實例。
-------------------
cp
/***/pfile/init.ora.0212012125517 //app/oracle/product/10.2.0/db_1/dbs/initorcl10g.ora