Ошибка Temenos DBImport при попытке импорта из Oracle в H2 - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь импортировать базу данных Temenos T24 из Oracle в H2 со следующими настройками:


Целевая база данных: H2
URL: jdb c: h2: tcp… data / temenos / h2 / TAFJDB1
Драйвер: org.h2.Driver
ИД пользователя: ****
Пароль: ****
Макет: TEXT -> VARCHAR / VARCHAR
Использовать XMLBinary: Нет
Сохранить TAF_VO C: Да
Режим zOS: Нет

Исходная база данных: Oracle
URL: jdbc:oracle:thin:@...: ORA12 C
Драйвер : oracle .jdb c .driver.OracleDriver
ID пользователя: ****
Пароль: ****

To Do
Создание таблиц: Да
Очистить таблицы: Нет
Вставить записи: Да
Создание представлений: Да

Таблицы для
Процесс: все
исключить:
не вставить:
исключить из XML: F.JOB.LIST. *
UD Исключения: [F.DL.DATA, DW.EXPORT, & HOLD &, & COMO &]


Нажмите, чтобы продолжить ...

Импорт запустился примерно на 50%, затем он остановился с приведенной ниже ошибкой в ​​журнале ошибок:

[INFO ] 2020-03-06 09:50:13,683 [Thread-11] DBIMPORT {} - Creating TAFJ_CACHE table ...
[ERROR] 2020-03-06 09:50:13,698 [Thread-11] DBIMPORT {} - Exception while creating TAFJ_CACHE : 
org.h2.jdbc.JdbcSQLException: Table "TAFJ_CACHE" already exists; SQL statement:
CREATE TABLE TAFJ_CACHE (RECID VARCHAR(255) NOT NULL PRIMARY KEY, CACHENAME VARCHAR(255), WRITEBATCHROWS VARCHAR(5)) [42101-161]
                at org.h2.engine.SessionRemote.done(SessionRemote.java:538) ~[h2-1.3.161.jar:1.3.161]
                at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:183) ~[h2-1.3.161.jar:1.3.161]
                at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177) ~[h2-1.3.161.jar:1.3.161]
                at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152) ~[h2-1.3.161.jar:1.3.161]
                at com.temenos.dbi.oracle.DBImport.createTAFJCacheTable(DBImport.java:3144) [TAFJDBImport.jar:19.30.0]
                at com.temenos.dbi.oracle.DBImport.doItForTwoDatabases(DBImport.java:1453) [TAFJDBImport.jar:19.30.0]
                at com.temenos.dbi.gui.MainWindow$4$1.run(MainWindow.java:330) [TAFJDBImport.jar:19.30.0]
                at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
[INFO ] 2020-03-06 14:05:36,723 [Thread-11] DBIMPORT {} - Processing table :F.STANDARD.SELECTION
[INFO ] 2020-03-06 14:05:36,727 [Thread-11] DBIMPORT {} -  Processing table : F.STANDARD.SELECTION
[INFO ] 2020-03-06 14:05:37,449 [Thread-11] DBIMPORT {} - Adding table into currentWork : F_STANDARD_SELECTION
[INFO ] 2020-03-06 14:08:31,604 [Thread-11] DBIMPORT {} - Adding table into currentWork : D_F_STANDARD_SELECTION
[INFO ] 2020-03-06 14:08:36,998 [Thread-11] DBIMPORT {} - Processing table :F.PGM.FILE
[INFO ] 2020-03-06 14:08:36,999 [Thread-11] DBIMPORT {} -  Processing table : F.PGM.FILE
[INFO ] 2020-03-06 14:08:37,015 [Thread-11] DBIMPORT {} - Adding table into currentWork : F_PGM_FILE
[ERROR] 2020-03-06 14:08:37,017 [Thread-11] DBIMPORT {} - Failed Executing: CREATE TABLE "F_PGM_FILE" (RECID VARCHAR(255) NOT NULL PRIMARY KEY, XMLRECORD VARCHAR)
org.h2.jdbc.JdbcSQLException: Table "F_PGM_FILE" already exists; SQL statement:
CREATE TABLE "F_PGM_FILE" (RECID VARCHAR(255) NOT NULL PRIMARY KEY, XMLRECORD VARCHAR) [42101-161]
                at org.h2.engine.SessionRemote.done(SessionRemote.java:538) ~[h2-1.3.161.jar:1.3.161]
                at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:183) ~[h2-1.3.161.jar:1.3.161]
                at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177) ~[h2-1.3.161.jar:1.3.161]
                at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152) ~[h2-1.3.161.jar:1.3.161]
                at com.temenos.dbi.oracle.DBImport.insertDDLSQL(DBImport.java:4438) [TAFJDBImport.jar:19.30.0]
                at com.temenos.dbi.oracle.DBImport.createTable(DBImport.java:2822) [TAFJDBImport.jar:19.30.0]
                at com.temenos.dbi.oracle.DBImportWorker.doWork(DBImportWorker.java:336) [TAFJDBImport.jar:19.30.0]
                at com.temenos.dbi.oracle.DBImport.doItForTwoDatabases(DBImport.java:1494) [TAFJDBImport.jar:19.30.0]
                at com.temenos.dbi.gui.MainWindow$4$1.run(MainWindow.java:330) [TAFJDBImport.jar:19.30.0]
                at java.lang.Thread.run(Thread.java:748) [?:1.8.0_241]
[ERROR] 2020-03-06 14:08:37,018 [Thread-11] DBIMPORT {} - Failed to create : 'F_PGM_FILE' Layout : 'TEXT' : org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "F_PGM_FILE" already exists; SQL statement:
CREATE TABLE "F_PGM_FILE" (RECID VARCHAR(255) NOT NULL PRIMARY KEY, XMLRECORD VARCHAR) [42101-200]
                at org.h2.message.DbException.getJdbcSQLException(DbException.java:453)
                at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
                at org.h2.message.DbException.get(DbException.java:205)
                at org.h2.message.DbException.get(DbException.java:181)
                at org.h2.command.ddl.CreateTable.update(CreateTable.java:89)
                at org.h2.command.CommandContainer.update(CommandContainer.java:198)
                at org.h2.command.Command.executeUpdate(Command.java:251)
                at org.h2.server.TcpServerThread.process(TcpServerThread.java:406)
                at org.h2.server.TcpServerThread.run(TcpServerThread.java:183)
                at java.lang.Thread.run(Unknown Source)

[ERROR] 2020-03-06 14:08:37,018 [Thread-11] DBIMPORT {} - SQL = :
[ERROR] 2020-03-06 14:08:37,020 [Thread-11] DBIMPORT {} - Exception on F.PGM.FILE/F_PGM_FILE : Error creating table in destination connection:F_PGM_FILE
[ERROR] 2020-03-06 14:08:37,021 [Thread-11] DBIMPORT {} - Exception on F.PGM.FILE/F_PGM_FILE : Failed to create pgm table.  Terminating.

Пожалуйста, дайте мне знать, если у вас есть идеи, что я могу сделать, чтобы это исправить.

Спасибо, Карина

1 Ответ

0 голосов
/ 09 марта 2020

Убедитесь, что для этой задачи вы используете пустой файл базы данных / данных H2. Используйте скрипт tCreateDB для создания пустой базы данных TAFJ H2. Этот сценарий находится в TAFJ_HOME / dbscripts / h2 вместе с TAFJFunctions.jar, который требуется загрузить в БД перед запуском DBImport.

В случае, если вы перезапускаете ранее прерванный DBImport, в вашем случае используйте параметр «-startwithfile» и введите последний файл (не), обработанный предыдущим запуском DBImport:

DBImport -startwithfile FBNK.ACCOUNT

Также существует параметр «-endwithfile».

Из Temenos " TAFJ-DB Setup.pdf "do c:

-startwithfile DBImport может начать создавать файлы с определенной начальной точки (ie. Полезно, если ваша программа DBImport по какой-то причине вылетала, и вы этого не делаете не хочу начинать с нуля). ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, ФИЛЬМОМ ПОСЛЕ ОПЦИИ является VO C (J4 FILENAME), а НЕ ORACLE FILENAME

...