Этот вопрос похож на вопрос https://stackoverflow.com/questions/3362965/problem-with-ddlutils-in-oracle-10g. Поскольку моя проблема (или, по крайней мере, я так думаю) немного отличается от упомянутого вопроса, я выкладываю новый.
Я использую DdlUtils-1.0, Java-6 (OpenJdk), ojdbc6.jar и Oracle 11.1.0. Миграция запускается задачами муравья. Задача выглядит так:
<target name="dump-db" description="Dumps DB" depends="">
<taskdef name="databaseToDdl" classname="org.apache.ddlutils.task.DatabaseToDdlTask">
<classpath>
<path refid="runtime-classpath"/>
<path refid="project-classpath"/>
</classpath>
</taskdef>
<databaseToDdl modelname="${modelname}" verbosity="DEBUG" databasetype="${source.platform}"
usedelimitedsqlidentifiers="true" tabletypes="TABLE" schemapattern="${schemapattern}">
<database url="${source.url}"
driverClassName="${source.driver}"
username="${source.username}"
password="${source.passwd}"
initialsize="5"
testonborrow="true"
testonreturn="true"/>
<writeschemasqltofile failonerror="false" outputfile="${out.dir}/${schema.file.sql}"/>
<writedtdtofile outputfile="${out.dir}/${schema.file.dtd}"/>
<writeSchemaToFile failonerror="false" outputFile="${out.dir}/${schema.file.xml}"/>
<writedatatofile failonerror="false" outputfile="${out.dir}/${data.file.xml}" determineschema="true"/>
</databaseToDdl>
</target>
$ {source.platform} имеет значение 'oracle10', поскольку oracle11 не поддерживается ddlutils. Создание определений схемы работает довольно хорошо, но при выводе данных я сталкиваюсь со следующим исключением:
[databaseToDdl] org.apache.ddlutils.model.ModelException: неизвестный код типа JDBC 2007
[databaseToDdl] at org.apache.ddlutils.model.Column.setTypeCode (Column.java:215)
[databaseToDdl] at org.apache.ddlutils.platform.JdbcModelReader.readColumn (JdbcModelReader.java:781)
[databaseToDdl] at org.apache.ddlutils.platform.oracle.Oracle8ModelReader.readColumn (Oracle8ModelReader.java:117)
[databaseToDdl] at org.apache.ddlutils.platform.JdbcModelReader.readColumns (JdbcModelReader.java:755)
[databaseToDdl] at org.apache.ddlutils.platform.JdbcModelReader.readTable (JdbcModelReader.java:565)
[databaseToDdl] at org.apache.ddlutils.platform.oracle.Oracle8ModelReader.readTable (Oracle8ModelReader.java:102)
[databaseToDdl] at org.apache.ddlutils.platform.oracle.Oracle10ModelReader.readTable (Oracle10ModelReader.java:80)
[databaseToDdl] в
...
В http://download.oracle.com/javase/6/docs/api/constant-values.html#java.sql.Types.BIT перечислены коды типа jdbc. Очевидно, ddlutils получает этот код типа из драйвера jdbc, но не может найти соответствующий тип в java.sql.Types.
У кого-нибудь есть идеи, как решить эту проблему?