Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在Firebird和jooq中得到一个列未知异常?_Java_Firebird_Jooq - Fatal编程技术网

Java 为什么我在Firebird和jooq中得到一个列未知异常?

Java 为什么我在Firebird和jooq中得到一个列未知异常?,java,firebird,jooq,Java,Firebird,Jooq,我想用Jooq生成一些类 Jooq版本:3.8.2 火鸟版本:2.5 JDBC Firebird驱动程序:2.1.6 以下是我的Config.xml: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.7.0.xsd"> <jdbc> <dri

我想用Jooq生成一些类

Jooq版本:3.8.2 火鸟版本:2.5 JDBC Firebird驱动程序:2.1.6

以下是我的Config.xml:

   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.7.0.xsd">
    <jdbc>
        <driver>org.firebirdsql.jdbc.FBDriver</driver>
        <url>jdbc:firebirdsql:localhost/3050://var/lib/firebird/2.5/data/db.gdb?encoding=ISO8859_1</url>
        <user>sysdba</user>
        <password>masterkey</password>
    </jdbc>
    <generator>
        <name>org.jooq.util.JavaGenerator</name>
        <database>
            <name>org.jooq.util.firebird.FirebirdDatabase</name>
            <includes>.*</includes>
            <excludes>RDB\$.*|MON\$.*|SEC\$.*</excludes>
            <inputSchema></inputSchema>
        </database>
        <generate>
            <pojosEqualsAndHashCode>true</pojosEqualsAndHashCode>
            <pojos>true</pojos>
        </generate>
        <target>
            <packageName>models.gen</packageName>
            <directory>./app</directory>
        </target>
    </generator>
</configuration>

org.firebirdsql.jdbc.FBDriver
jdbc:firebirdsql:localhost/3050://var/lib/firebird/2.5/data/db.gdb?encoding=ISO8859_1
系统数据库
法宝
org.jooq.util.JavaGenerator
org.jooq.util.firebird.FirebirdDatabase
.*
RDB\$.*周一\$.*秒\$*
真的
真的
models.gen
/应用
如果运行jooq,则会出现SQL错误:

    SQL error code = -206
Column unknown
RDB$PROCEDURES.RDB$PROCEDURE_TYPE
At line 1, column 208

Please report this bug here: https://github.com/jOOQ/jOOQ/issues/new


  select 
    trim("RDB$RELATIONS"."RDB$RELATION_NAME"), 
    0 "table_valued_function"
  from "RDB$RELATIONS"
union all 
  select 
    trim("RDB$PROCEDURES"."RDB$PROCEDURE_NAME"), 
    1 "table_valued_function"
  from "RDB$PROCEDURES"
  where (
    "RDB$PROCEDURES"."RDB$PROCEDURE_TYPE" = 1
    and 1 = 0
  )
order by 1 asc
Jun 27, 2016 11:35:01 AM org.jooq.tools.JooqLogger error
SCHWERWIEGEND: Error while fetching tables
org.jooq.exception.DataAccessException: SQL [select trim("RDB$RELATIONS"."RDB$RELATION_NAME"), 0 "table_valued_function" from "RDB$RELATIONS" union all select trim("RDB$PROCEDURES"."RDB$PROCEDURE_NAME"), 1 "table_valued_function" from "RDB$PROCEDURES" where ("RDB$PROCEDURES"."RDB$PROCEDURE_TYPE" = cast(? as smallint) and 1 = 0) order by 1 asc]; GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -206
Column unknown
RDB$PROCEDURES.RDB$PROCEDURE_TYPE
At line 1, column 208
        at org.jooq.impl.Tools.translate(Tools.java:1908)
        at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:659)
        at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:362)
        at org.jooq.impl.AbstractResultQuery.fetch(AbstractResultQuery.java:312)
        at org.jooq.impl.AbstractResultQuery.iterator(AbstractResultQuery.java:323)
        at org.jooq.impl.SelectImpl.iterator(SelectImpl.java:2715)
        at org.jooq.util.firebird.FirebirdDatabase.getTables0(FirebirdDatabase.java:241)
        at org.jooq.util.AbstractDatabase.getTables(AbstractDatabase.java:980)
        at org.jooq.util.SchemaDefinition.getTables(SchemaDefinition.java:74)
        at org.jooq.util.JavaGenerator.generateSchema(JavaGenerator.java:3638)
        at org.jooq.util.JavaGenerator.generateSchema(JavaGenerator.java:3604)
        at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:350)
        at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:317)
        at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:282)
        at org.jooq.util.GenerationTool.run(GenerationTool.java:533)
        at org.jooq.util.GenerationTool.generate(GenerationTool.java:195)
        at org.jooq.util.GenerationTool.main(GenerationTool.java:166)
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -206
Column unknown
RDB$PROCEDURES.RDB$PROCEDURE_TYPE
At line 1, column 208
        at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:147)
        at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:92)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:890)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:845)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:838)
        at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:314)
        at org.jooq.impl.ProviderEnabledConnection.prepareStatement(ProviderEnabledConnection.java:112)
        at org.jooq.impl.SettingsEnabledConnection.prepareStatement(SettingsEnabledConnection.java:76)
        at org.jooq.impl.AbstractResultQuery.prepare(AbstractResultQuery.java:231)
        at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:320)
        ... 14 more
SQL错误代码=-206 未知列 RDB$过程。RDB$过程类型 第1行第208列 请在此处报告此错误:https://github.com/jOOQ/jOOQ/issues/new 挑选 trim(“RDB$RELATIONS”。“RDB$RELATIONS_NAME”), 0“表值函数” 来自“RDB$关系” 联合所有 挑选 trim(“RDB$程序”。“RDB$程序名称”), 1“表值函数” 来自“RDB$程序” 在哪里( “RDB$程序”。“RDB$程序类型”=1 和1=0 ) 由1 asc订购 2016年6月27日上午11:35:01 org.jooq.tools.JooqLogger错误 SCHWERWIEGEND:获取表时出错 org.jooq.exception.DataAccessException:SQL[select trim(“RDB$RELATIONS.”“RDB$RELATIONS_NAME”),“RDB$RELATIONS”中的0“table_valued_function”和“RDB$PROCEDURES”中的1“table_valued_function”,其中(“RDB$PROCEDURES PROCEDURES”。“RDB$PROCEDURES PROCEDURES_TYPE”=cast(?as smallint)和1=0)order by 1 asc];GDS例外。335544569动态SQL错误 SQL错误代码=-206 未知列 RDB$过程。RDB$过程类型 第1行第208列 位于org.jooq.impl.Tools.translate(Tools.java:1908) 位于org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:659) 在org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:362) 位于org.jooq.impl.AbstractResultQuery.fetch(AbstractResultQuery.java:312) 位于org.jooq.impl.AbstractResultQuery.iterator(AbstractResultQuery.java:323) 在org.jooq.impl.SelectImpl.iterator上(SelectImpl.java:2715) 位于org.jooq.util.firebird.FirebirdDatabase.getTables0(FirebirdDatabase.java:241) 位于org.jooq.util.AbstractDatabase.getTables(AbstractDatabase.java:980) 位于org.jooq.util.SchemaDefinition.getTables(SchemaDefinition.java:74) 位于org.jooq.util.JavaGenerator.generateSchema(JavaGenerator.java:3638) 位于org.jooq.util.JavaGenerator.generateSchema(JavaGenerator.java:3604) 位于org.jooq.util.JavaGenerator.generate(JavaGenerator.java:350) 位于org.jooq.util.JavaGenerator.generate(JavaGenerator.java:317) 位于org.jooq.util.JavaGenerator.generate(JavaGenerator.java:282) 位于org.jooq.util.GenerationTool.run(GenerationTool.java:533) 位于org.jooq.util.GenerationTool.generate(GenerationTool.java:195) 位于org.jooq.util.GenerationTool.main(GenerationTool.java:166) 原因:org.firebirdsql.jdbc.FBSQLException:GDS异常。335544569动态SQL错误 SQL错误代码=-206 未知列 RDB$过程。RDB$过程类型 第1行第208列 位于org.firebirdsql.jdbc.AbstractPreparedStatement。(AbstractPreparedStatement.java:147) 位于org.firebirdsql.jdbc.FBPreparedStatement.(FBPreparedStatement.java:46) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 位于java.lang.reflect.Constructor.newInstance(Constructor.java:423) 位于org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:92) 位于org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:890) 位于org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:845) 位于org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:838) 位于org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:314) 位于org.jooq.impl.ProviderEnabledConnection.prepareStatement(ProviderEnabledConnection.java:112) 在org.jooq.impl.SettingsEnabledConnection.prepareStatement上(SettingsEnabledConnection.java:76) 位于org.jooq.impl.AbstractResultQuery.prepare(AbstractResultQuery.java:231) 在org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:320)上 ... 14多 我的Firebird DB中实际上不存在RDB$PROCEDURE_类型列


如何解决此问题?

Firebird 2.0(磁盘结构(ODS)11.0)中引入了列
RDB$PROCEDURE\u TYPE
。从外观上看,您的数据库是ODS10(Interbase 6/Firebird 1.0)。要在数据库中获取此列,您需要通过备份并还原数据库来升级ODS。这将把您的数据库升级到ODS 11.2(Firebird 2.5)。

您的数据库的ODS是什么?从外观上看,它仍然是ODS 10(Interbase 6/Firebird 1),而不是Firebird 2.5的ODS 11.2。您可能需要备份和恢复数据库以升级ODS。就这样!非常感谢。我已经更新了ODS。我根据我的评论添加了一个答案。注意JayBuy2.1.6是10岁,考虑升级到JayBuy2.2.10。