首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle11.1.0中使用DdlUtils时出现问题

在Oracle11.1.0中使用DdlUtils时出现问题
EN

Stack Overflow用户
提问于 2011-04-19 17:33:08
回答 1查看 2.4K关注 0票数 2

此问题类似于问题https://stackoverflow.com/questions/3362965/problem-with-ddlutils-in-oracle-10g。由于我的问题(或至少我认为是)与前面提到的问题略有不同,所以我发布了一个新的问题。

我使用的是DdlUtils-1.0、Java-6 (OpenJdk)、ojdbc6.jar和Oracle11.1.0。迁移由ant任务启动。该任务如下所示:

代码语言:javascript
复制
<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支持。模式定义的创建工作得很好,但是在转储数据时,我会遇到以下异常:

JDBC org.apache.ddlutils.model.ModelException:未知的JDBC类型代码2007 databaseToDdl at org.apache.ddlutils.platform.JdbcModelReader.readColumn(JdbcModelReader.java:781) databaseToDdl at org.apache.ddlutils.platform.JdbcModelReader.readColumn(JdbcModelReader.java:781) databaseToDdl at org.apache.ddlutils.platform.JdbcModelReader.readColumns(JdbcModelReader.java:755) databaseToDdl at org.apache.ddlutils.platform.JdbcModelReader。readTable(JdbcModelReader.java:565) databaseToDdl在org.apache.ddlutils.platform.oracle.Oracle8ModelReader.readTable(Oracle8ModelReader.java:102) databaseToDdl at org.apache.ddlutils.platform.oracle.Oracle10ModelReader.readTable(Oracle10ModelReader.java:80) databaseToDdl at ...

http://download.oracle.com/javase/6/docs/api/constant-values.html#java.sql.Types.BIT中,列出了jdbc类型代码。显然,ddlutils从jdbc驱动程序中获得了这种类型代码,但在java.sql.Types中找不到对应的类型。

有谁知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-07 20:27:37

已经很晚了,五年后,

不过想一想,会对以后的几个人有所帮助。

访问:org.apache.ddlutils.model.TypeMap

方法:getJdbcTypeName(int typeCode)

写小逻辑,将2007设置为12

即:

代码语言:javascript
复制
if(typeCode == 2007){
typeCode = java.sql.Types.VARCHAR;
}

问题:TypeMapping in DdlUtils, is done with exisitinf java.sql.Types enum. Whereas, for the Oracle11g, the are few extra types. Hence issue raised.希望它能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5714338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档