1

我正在尝试使用以下设置将 Temenos T24 数据库从 Oracle 导入 H2:


目标数据库:H2
URL:jdbc:h2:tcp…data/temenos/h2/TAFJDB1
驱动程序:org.h2.Driver
用户 ID:****
密码:****
布局:TEXT -> VARCHAR / VARCHAR
使用 XMLBinary:否
保留 TAF_VOC:是
模式 zOS:否

源数据库:Oracle
URL:jdbc:oracle:thin:@...:ORA12C
驱动程序:oracle.jdbc.driver.OracleDriver
用户 ID:****
密码:****

待办事项
创建表:是
清除表:否
插入记录:是
创建视图:是


处理的表:全部
排除:
不插入:
从 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.

如果您对我能做些什么来解决这个问题有任何想法,请告诉我。

谢谢你,卡丽娜

4

1 回答 1

0

确保您为此任务使用空白的 H2 数据库/数据文件。使用 tCreateDB 脚本创建一个空白的 TAFJ H2 数据库。此脚本与 TAFJFunctions.jar 一起位于 TAFJ_HOME/dbscripts/h2 中,需要在运行 DBImport 之前将其加载到 DB 中。

如果您要重新启动先前终止的 DBImport,请使用“-startwithfile”选项并输入上次运行 DBImport 处理的最后一个文件(未):

DBImport -startwithfile FBNK.ACCOUNT

还有一个“-endwithfile”选项。

来自 Temenos“TAFJ-DB Setup.pdf”文档:

-startwithfile DBImport 可以从特定的起点开始创建文件(即,如果您的 DBImport 程序由于某种原因崩溃并且您不想从头开始,则很有用)。请注意,选项后的文件名是 VOC(J4 文件名)而不是 ORACLE 文件名

于 2020-03-09T17:19:04.287 回答