我有以下dbunit配置
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>dbunit-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<dependencies>
<dependency>
<groupId>ojdbc6</groupId>
<artifactId>ojdbc6</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency>
</dependencies>
<configuration>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@host.com:1521/user</url>
<username>user</username>
<password>password</password>
<format>flat</format>
<schema>myschemaname</schema>
<useQualifiedTableNames>true</useQualifiedTableNames>
<tables>
<table>
<name>tablename</name>
</table>
</tables>
</configuration>
</plugin>
当我运行导出目标时,它失败并显示sql异常,说明找不到该表。但是,如果我将表名从tablename
更改为myschemaname.tablename
并删除schema
节点导出正常工作。即使我没有删除schema
节点它也能正常工作,所以它不会因{1}}表名而失败。
配置有什么问题?
答案 0 :(得分:1)
尝试将useQualifiedTableNames设置为false:
<useQualifiedTableNames>false</useQualifiedTableNames>
查看dbunit maven插件文档here。
<强>更新强>
如果您使用Oracle 10g,您可能还需要启用skipOracleRecycleBinTables:
<skipOracleRecycleBinTables>true</skipOracleRecycleBinTables>
如DBUnit doc here中所述:
跳过Oracle 10g回收站表
启用或禁用oracle回收站表(以BIN $开头的表)的处理。 Oracle 10g recyle bin表可能会破坏DbUnit对模式中表名唯一性的假设,因为这些表区分大小写。为Oracle 10g数据库启用此功能,直到修复了oracle驱动程序中的错误,错误地将此系统表报告给DbUnit。
希望这有帮助。