Estoy usando dbunit para crear copias de seguridad de la base de datos, que se pueden importar y exportar. Mi aplicación puede usar varios motores de bases de datos: MySQL, PostgreSQL, SQLServer, H2 y Oracle.Oracle + dbunit obtiene AmbiguousTableNameException
Todo lo anterior funcionan bien con el siguiente código:
// Connect to the database
conn =BackupManager.getInstance().getConnection();
IDatabaseConnection connection = new DatabaseConnection(conn);
InputSource xmlSource = new InputSource(new FileInputStream(new File(nameXML)));
FlatXmlProducer flatXmlProducer = new FlatXmlProducer(xmlSource);
flatXmlProducer.setColumnSensing(true);
DatabaseOperation.CLEAN_INSERT.execute(connection,new FlatXmlDataSet(flatXmlProducer));
Pero en Oracle que obtienen esta excepción:
!ENTRY es.giro.girlabel.backup 1 0 2012-04-11 11:51:40.542
!MESSAGE Start import backup
org.dbunit.database.AmbiguousTableNameException: AQ$_SCHEDULES
at org.dbunit.dataset.OrderedTableNameMap.add(OrderedTableNameMap.java:198)
at org.dbunit.database.DatabaseDataSet.initialize(DatabaseDataSet.java:231)
at org.dbunit.database.DatabaseDataSet.getTableMetaData(DatabaseDataSet.java:281)
at org.dbunit.operation.DeleteAllOperation.execute(DeleteAllOperation.java:109)
at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79)
at es.giro.girlabel.backup.ImportBackup.createData(ImportBackup.java:39)
at es.giro.girlabel.backup.handlers.Import.execute(Import.java:45)
Gracias, ya he resuelto este problema, pero fue por la solución 1 que mencionaste. –
I está utilizando [spring-dbunit] (https://github.com/excilys/spring-dbunit), la solución 1) se puede lograr estableciendo la propiedad del sistema [spring.dbunit.schema] (https: // github .com/excilys/spring-dbunit/issues/18). –