Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-3425

java.sql.SQLSyntaxErrorException: ORA-00904: "BANNER_FULL": 标识符无效

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • None
    • 1.5.0.Final
    • oracle-connector
    • None
    • False
    • False
    • Undefined

    Description

      We are using oracle connector and got this error

      java.lang.RuntimeException: Failed to resolve Oracle database versionjava.lang.RuntimeException: Failed to resolve Oracle database version at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:158) at io.debezium.connector.oracle.OracleConnection.<init>(OracleConnection.java:70) at io.debezium.connector.oracle.OracleConnectorTask.start(OracleConnectorTask.java:53) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130) at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:759) at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:188) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "BANNER_FULL": 标识符无效
       at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37) at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:733) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1276) at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:366) at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:643) at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:512) at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:128)

      OracleConnection.java:137, we can see If the error here is not in English, it will trigger this bug

                      // exception ignored
                      if (e.getMessage().contains("ORA-00904: \"BANNER_FULL\": invalid identifier")) {
                          LOGGER.debug("BANNER_FULL column not in V$VERSION, using BANNER column as fallback");
                          versionStr = null;
                      }
                      else {
                          throw e;
                      }
      

      I think the sql error msg

      ORA-00904: \"BANNER_FULL\":

      can already represent the complete information

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              winger2049 winger chung (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: