2013-09-12 3 views
0

Я хочу извлечь мою базу данных в FlatXmlDataSet. Я использую этот учебник: http://www.dbunit.org/faq.html#extractdbunit - исключение SQL

мой код выглядит:

Class driverClass = Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection jdbcConnection = DriverManager.getConnection(
      "jdbc:oracle:thin: <my parametres>", "<user>", "<password>"); 
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection); 

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

и у меня есть ошибка:

Exception in thread "main" org.dbunit.dataset.DataSetException:java.sql.SQLSyntaxErrorException: 
ORA-00942: table or view does not exist 

at org.dbunit.database.DatabaseDataSet.getTable(DatabaseDataSet.java:316) 
at org.dbunit.database.DatabaseTableIterator.getTable(DatabaseTableIterator.java:89) 
at org.dbunit.dataset.stream.DataSetProducerAdapter.produce(DataSetProducerAdapter.java:83) 
at org.dbunit.dataset.xml.FlatXmlWriter.write(FlatXmlWriter.java:124) 
at org.dbunit.dataset.xml.FlatXmlDataSet.write(FlatXmlDataSet.java:341) 
at db.main(db.java:26) 
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist 

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513) 
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227) 
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) 
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195) 
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:876) 
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175) 
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296) 
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1498) 
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:406) 
at org.dbunit.database.AbstractResultSetTable.<init>(AbstractResultSetTable.java:110) 
at org.dbunit.database.ForwardOnlyResultSetTable.<init>(ForwardOnlyResultSetTable.java:59) 
at org.dbunit.database.CachedResultSetTableFactory.createTable(CachedResultSetTableFactory.java:60) 
at org.dbunit.database.DatabaseDataSet.getTable(DatabaseDataSet.java:312) 
... 5 more 

Я использую: -eclipse -dbunit 2.4.5 -slf4j 1,5 .8 -maven 3.04

Спасибо за любую помощь

ответ

0

Прежде всего, проверьте правильность написания ваших параметров подключения, установлены необходимые разрешения и что таблицы из вашей базы данных действительно существуют. Затем вы можете взглянуть на этот похожий пост java.sql.SQLSyntaxErrorException: ORA-00942.

+0

Параметры подключения правильные. О таблицах у меня есть несколько таблиц, но я не указываю, из какой таблицы он может читать. Это может вызвать проблемы? – DivinaProportio

+0

Попробуйте использовать частичный экспорт базы данных и добавьте таблицы один за другим, как описано [здесь] (http://dbunit.sourceforge.net/faq.html#extract). Сначала вы должны проверить [необходимые разрешения] (http://docs.oracle.com/cd/B10500_01/server.920/a96524/c24privs.htm) для имени пользователя, используемого в вашем коде, для подключения к базе данных. – aUserHimself