schemacrawler / SchemaCrawler

Free database schema discovery and comprehension tool
http://www.schemacrawler.com/
Other
1.6k stars 199 forks source link

Oracle Issue - No tables info fetched from DB #193

Closed selvanponraj closed 6 years ago

selvanponraj commented 6 years ago

Environment

Specify the

  • version of SchemaCrawler that you are using 14.20.04
  • version of Java that you are using 1.8.0_151-b12
  • operating system and version that you are using Linux
  • relational datavase and version that you are using Oracle Oracle8i Enterprise Edition Release 8.1.7.4.0
  • JDBC driver and version that you are using ojdbc6.jar and ojdbc14.jar(kept both in lib directory to get the connection). using only ojdbc6.jar i am getting this error

Without ojdbc14.jar

Aug 09, 2018 2:57:07 PM us.fatehi.commandlineparser.CommandLineUtility logFullStackTrace SEVERE: 4 java.lang.ArrayIndexOutOfBoundsException: 4 at oracle.jdbc.driver.T4C8TTIdty.(T4C8TTIdty.java:488) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1199) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:553) at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:254) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528) at schemacrawler.schemacrawler.BaseDatabaseConnectionOptions.getConnection(BaseDatabaseConnectionOptions.java:165) at schemacrawler.schemacrawler.BaseDatabaseConnectionOptions.getConnection(BaseDatabaseConnectionOptions.java:106) at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:129) at schemacrawler.Main.main(Main.java:90)

Issue

No table info is fetched from DB and getting below exception.

./schemacrawler.sh -server=oracle -host=XXXXX -port=XXXX -c=schema -database=XXXX -user=XXXXXX -password=XXXXX -infolevel=maximum -loglevel=CONFIG -schemas=XXXX -outputformat=text

Aug 09, 2018 4:00:42 PM schemacrawler.crawl.SchemaCrawler crawlTables INFO: Crawling tables Aug 09, 2018 4:00:42 PM schemacrawler.crawl.TableRetriever retrieveTables INFO: Retrieving tables Aug 09, 2018 4:00:42 PM schemacrawler.crawl.TableRetriever retrieveTablesFromMetadata INFO: Retrieving tables for schema Aug 09, 2018 4:00:42 PM schemacrawler.crawl.MetadataResultSet close INFO: Processed 0 rows for Aug 09, 2018 4:00:42 PM schemacrawler.crawl.SchemaCrawler crawlTables INFO: Retrieved 0 tables

Aug 09, 2018 4:00:42 PM sf.util.DatabaseUtility executeSql WARNING: Error executing SQL <-- APPEND A SQL TERMINATOR TO EACH DDL STATEMENT {call DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'SQLTERMINATOR', TRUE)}> java.sql.SQLException: ORA-00900: invalid SQL statement

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
    at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:963)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1192)
    at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1731)
    at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1701)
    at sf.util.DatabaseUtility.executeSql(DatabaseUtility.java:167)
    at sf.util.DatabaseUtility.executeScriptFromResource(DatabaseUtility.java:120)
    at schemacrawler.server.oracle.OracleExecutable.executeOracleScripts(OracleExecutable.java:68)
    at schemacrawler.server.oracle.OracleExecutable.execute(OracleExecutable.java:56)
    at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:131)
    at schemacrawler.Main.main(Main.java:90)

Aug 09, 2018 4:00:42 PM sf.util.DatabaseUtility executeSql WARNING: Error executing SQL < -- SUPRESS ALL NON-REFERENTIAL TABLE CONSTRAINTS {call DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'CONSTRAINTS', FALSE)}> java.sql.SQLException: ORA-00900: invalid SQL statement

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
    at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:963)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1192)
    at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1731)
    at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1701)
    at sf.util.DatabaseUtility.executeSql(DatabaseUtility.java:167)
    at sf.util.DatabaseUtility.executeScriptFromResource(DatabaseUtility.java:120)
    at schemacrawler.server.oracle.OracleExecutable.executeOracleScripts(OracleExecutable.java:68)
    at schemacrawler.server.oracle.OracleExecutable.execute(OracleExecutable.java:56)
    at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:131)
    at schemacrawler.Main.main(Main.java:90)

Aug 09, 2018 4:00:42 PM sf.util.DatabaseUtility executeSql WARNING: Error executing SQL < -- SUPRESS ALL REFERENTIAL TABLE CONSTRAINTS {call DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'REF_CONSTRAINTS', FALSE)}> java.sql.SQLException: ORA-00900: invalid SQL statement

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
    at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:963)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1192)
    at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1731)
    at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1701)
    at sf.util.DatabaseUtility.executeSql(DatabaseUtility.java:167)
    at sf.util.DatabaseUtility.executeScriptFromResource(DatabaseUtility.java:120)
    at schemacrawler.server.oracle.OracleExecutable.executeOracleScripts(OracleExecutable.java:68)
    at schemacrawler.server.oracle.OracleExecutable.execute(OracleExecutable.java:56)
    at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:131)
    at schemacrawler.Main.main(Main.java:90)

Aug 09, 2018 4:00:42 PM sf.util.DatabaseUtility executeSql WARNING: Error executing SQL < -- EMIT THE BYTE KEYWORD AS PART OF THE SIZE SPECIFICATION OF CHAR AND VARCHAR2 COLUMNS THAT USE BYTE SEMANTICS {call DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM, 'SIZE_BYTE_KEYWORD', TRUE)}> java.sql.SQLException: ORA-00900: invalid SQL statement

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
    at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:963)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1192)
    at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1731)
    at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1701)
    at sf.util.DatabaseUtility.executeSql(DatabaseUtility.java:167)
    at sf.util.DatabaseUtility.executeScriptFromResource(DatabaseUtility.java:120)
    at schemacrawler.server.oracle.OracleExecutable.executeOracleScripts(OracleExecutable.java:68)
    at schemacrawler.server.oracle.OracleExecutable.execute(OracleExecutable.java:56)
    at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:131)
    at schemacrawler.Main.main(Main.java:90)
sualeh commented 6 years ago

@selvanponraj the SchemaCrawler plugin for Oracle does not support Oracle 8. To avoid getting this error, go into the SchemaCrawler lib/ folder, and delete or move out a file called schemacrawler-oracle-14.21.04.jar. (Do not rename the file.)