2015-02-13 3 views
3

Создать тест для полного экспорта набора данных. Я использую базу данных Oracle 11g, и после пробного запуска я вижу следующее:
org.dbunit.DatabaseUnitRuntimeException: At least one column is required to build a valid select statement. Cannot load data for table=APEX_040000.SYS_IOT_OVER_16977, cols=[], pk=[]
В базе данных эта таблица пуста, и я не могу ее отбросить. Как я могу экспортировать весь набор данных из db?DBUnit DatabaseUnitRuntimeException

ответ

1

Это разные виды экспорта:

public class DatabaseExportSample{ 
    public static void main(String[] args) throws Exception{ 

    // database connection 
    Class driverClass = Class.forName("org.hsqldb.jdbcDriver"); 
    Connection jdbcConnection = DriverManager.getConnection(
      "jdbc:hsqldb:sample", "sa", ""); 
    IDatabaseConnection connection = new DatabaseConnection(jdbcConnection); 

    // partial database export 
    QueryDataSet partialDataSet = new QueryDataSet(connection); 
    partialDataSet.addTable("FOO", "SELECT * FROM TABLE WHERE COL='VALUE'"); 
    partialDataSet.addTable("BAR"); 
    FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial.xml")); 

    // full database export 
    IDataSet fullDataSet = connection.createDataSet(); 
    FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml")); 

    // dependent tables database export: export table X and all tables that 
    // have a PK which is a FK on X, in the right order for insertion 
    String[] depTableNames = 
     TablesDependencyHelper.getAllDependentTables(connection, "X"); 
    IDataSet depDataset = connection.createDataSet(depTableNames); 
    FlatXmlDataSet.write(depDataSet, new FileOutputStream("dependents.xml"));   

    } 
} 

визит: http://dbunit.sourceforge.net/faq.html