문서유형ㅣ장애해결
분야ㅣ마이그레이션
적용제품버전ㅣ6FS07, 7FS02
문서번호ㅣTMITI010
현상
Self FK(Foreign Key) 참조되어있는 Table PK(Primary Key) Drop 시 PK정보만 삭제되어 버리는 현상이 발생하였습니다.
java.sql.SQLException: 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16MSWIN949
원인
해당 오류는 Oracle의 Character set이 KO16MSWIN949인 경우 발생할 수 있습니다.
이는 Oracle JDBC 드라이버가 기본적으로 해당 문자셋을 지원하지 않기 때문이며, 이 문제를 해결하려면 Oracle에서 제공하는 orai18n.jar 파일이 필요합니다.
해결
orai18n.jar 파일을 T-Up의 lib 폴더에 복사한 후, T-Up 실행 파일을 텍스트 편집기로 열어 아래와 같이 classpath를 수정한 뒤 재기동하시면 해결이 가능합니다.
1. clsspath 변경
AS-IS
set jdbc_lib=.\lib\ifxjdbc.jar;.\lib\ifxjdbcx.jar;.\lib\jconn4.jar;.\lib\jconn3.jar;.\lib\ojdbc8.jar;.\lib\tibero6-jdbc.jar;.\lib\updb6-jdbc.jar;.\lib\inspur11-jdbc.jar;.\lib\sqljdbc4.jar;.\lib\sqljdbc.jar;.\lib\sqlite-jdbc-3.23.1.jar;.\lib\hl_agent.jar;.\lib\internal-jdbc-16.jar
TO-BE
set jdbc_lib=.\lib\ifxjdbc.jar;.\lib\ifxjdbcx.jar;.\lib\jconn4.jar;.\lib\jconn3.jar;.\lib\ojdbc8.jar;.\lib\tibero6-jdbc.jar;.\lib\updb6-jdbc.jar;.\lib\inspur11-jdbc.jar;.\lib\sqljdbc4.jar;.\lib\sqljdbc.jar;.\lib\sqlite-jdbc-3.23.1.jar;.\lib\hl_agent.jar;.\lib\internal-jdbc-16.jar;.\lib\orai18n.jar
2. 마이그레이션 수행
AS-IS
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
PARAMETER VALUE
------------------------------ --------------------
NLS_CHARACTERSET KO16MSWIN949
INFO[16:14:50,842][Thread-3]MigrationManager.migrateTable()(809) Querying source for table list
ERROR[16:14:51,605][Thread-3]MigrationManager.run()(347) java.sql.SQLException: 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16MSWIN949
at oracle.sql.CharacterSetUnknown.failCharsetUnknown(CharacterSetFactoryThin.java:233)
at oracle.sql.CharacterSetUnknown.convert(CharacterSetFactoryThin.java:194)
at oracle.jdbc.driver.PhysicalConnection.throughDbCharset(PhysicalConnection.java:10365)
at oracle.jdbc.driver.PhysicalConnection.enquoteIdentifier(PhysicalConnection.java:10442)
at oracle.jdbc.driver.OracleStatement.enquoteIdentifier(OracleStatement.java:6452)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3853)
at oracle.jdbc.driver.InsensitiveScrollableResultSet.findColumn(InsensitiveScrollableResultSet.java:270)
at oracle.jdbc.driver.GeneratedResultSet.getInt(GeneratedResultSet.java:556)
at com.tmax.tibero.tup.migrator.dd.OracleDDExtractor.setTableColumn(OracleDDExtractor.java:1323)
at com.tmax.tibero.tup.migrator.dd.OracleDDExtractor.getTableList(OracleDDExtractor.java:799)
at com.tmax.tibero.tup.migrator.MigrationManager.migrateTable(MigrationManager.java:810)
at com.tmax.tibero.tup.migrator.MigrationManager.migrateSchemaObject(MigrationManager.java:705)
at com.tmax.tibero.tup.migrator.MigrationManager.run(MigrationManager.java:327)
at java.lang.Thread.run(Thread.java:750)TO-BE
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; PARAMETER VALUE ------------------------------ -------------------- NLS_CHARACTERSET KO16MSWIN949 INFO[16:22:55,732][Thread-3]MigrationManager.alterCurrentSchema()(778) Alter schema to "sys" INFO[16:22:55,732][Thread-3]MigrationManager.createObjects()(1744) Objects to create:"sys" INFO[16:22:55,733][Thread-3]MigrationManager.printCompleteMsg()(1797) [(S) GENERATED] It took 1[ms] [Wed Jun 11 16:22:55 KST 2025] ... INFO[16:22:55,735][Thread-3]MigrationManager.printMigrateEnd()(545) Migration completed successfully: : Wed Jun 11 16:22:55 KST 2025