ORA-06553, PLS-553 : character set name is not recognized (ORACLE)
You can find the table or charset search
테이블을 조회할 경우 또는 케릭터셋 중첩으로 인해 나오는 오류
Query Execution
SELECT name, value$
FROM sys.props$
WHERE name = 'NLS_CHARACTERSET' OR name = 'NLS_NCHAR_CHARACTERSET';
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);
중복된 타입에 2가지 캐릭터 셋 존재 하는걸 볼수 있다
You can see that there are two character sets in the duplicate type.
중복된 타입 제거가 필요하다
Duplicate type removal is required
ORA-06553, PLS-553 : character set name is not recognized (ORACLE) to solve the problem
문제를 해결하기 위해서
terminal -> sqlplus / as sysdba
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;
중복된 열이 삭제된것을 볼수있다.
You can see that duplicate rows have been deleted.