2016-06-27 1 views
3

Jooq로 일부 클래스를 생성하고 싶습니다.jooq가있는 Firebird에서 열을 알 수없는 예외가 나타나는 이유는 무엇입니까?

Jooq 버전 : 3.8.2 파이어 버드 버전 : 2.5 JDBC - 파이어 버드 - 드라이버 : 나는 jooq을 실행하면, 내가 할

<?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> 

: 여기에 2.1.6

내의 Config.xml입니다 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 

열 RDB $ PROCEDURE_TYPE은 (는) Firebird DB에 실제로 존재하지 않습니다.

어떻게 해결할 수 있습니까?

+1

데이터베이스의 ODS는 무엇입니까? ODS 11.2 (Firebird 2.5) 대신 ODS 10 (Interbase 6/Firebird 1)입니다. 데이터베이스를 백업하고 복원하여 ODS를 업그레이드하고자 할 수 있습니다. –

+0

그게 다야! 고맙습니다! ODS를 업데이트했습니다. http://firebirdsql.org/manual/gbak-recipies.html –

+0

내 의견을 바탕으로 답변을 추가했습니다. –

답변

2

RDB$PROCEDURE_TYPE은 Firebird 2.0 (ODS (On-Disk-Structure) 11.0)에 도입되었습니다. 당신의 데이터베이스는 ODS 10 (Interbase 6/Firebird 1.0)입니다. 데이터베이스에서이 열을 가져 오려면 데이터베이스를 백업하고 복원하여 ODS를 업그레이드해야합니다. 그러면 데이터베이스가 ODS 11.2 (Firebird 2.5)로 업그레이드됩니다.

관련 문제