현상
T-Up 마이그레이션을 수행하는 도중, 아래와 같은 오류가 발생하며 작업이 중단되는 현상이 발생하였습니다.
java.sql.SQLException: 지원되지 않는 문자 집합(클래스 경로에 orai18n.jar 추가): KO16MSWIN949
SQL
복사
원인
해당 오류는 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
SQL
복사
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
SQL
복사
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)
SQL
복사
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
SQL
복사