Uploaded image for project: 'Liquibase Core'
  1. CORE-3373

Liquibase 3.6.2 fails to run some change sets with Oracle 11XE (works fine on Liquibase 3.5.5)

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects versions: 3.6.2
    • Fix versions: None
    • Components: None
    • Environment:
      • Linux 64-Bit, OpenJDK 8, Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production (Docker Image)
    • Sprint:

      Description

      On Liquibase 3.5.5 everything works fine.
      After the update to Liquibase 3.6.2 there are the following errors when running against Oracle 11XE.

      • PostgreSQL is working fine
      • MySQL / MariaDB is working fine
      • MSSQL has other issues (see CORE-3372 Open )
      Starting Liquibase at Fri, 18 Jan 2019 08:39:36 GMT (version 3.6.2 built at 2018-07-03 11:28:09)
      
      Unexpected error running Liquibase: ORA-00984: column not allowed here
      
       [Failed SQL: CREATE TABLE NMC.JOBDESCRIPTION (JOBID VARCHAR2(40) NOT NULL, EXECUTIONTYPE INTEGER NOT NULL, EXECUTABLENAME VARCHAR2(512) NOT NULL, ACTIVATED INTEGER DEFAULT 1 NOT NULL, NEXTACTIVATIONTIME TIMESTAMP DEFAULT UNSUPPORTED:1990-01-01T00:00:00 NOT NULL, LASTACTIVATIONTIME TIMESTAMP NOT NULL, TIMESERVICEID INTEGER NOT NULL, TIMEZONE VARCHAR2(50) NOT NULL, DSTMODE VARCHAR2(50) NOT NULL, JOBBEGIN TIMESTAMP NOT NULL, JOBINTERVALL INTEGER, JOBEND TIMESTAMP NOT NULL, JOBCYCLETIME INTEGER, JOBCYCLETYPE INTEGER, JOBCYCLEACTIVE INTEGER, NEXTJOBCYCLEBEGIN TIMESTAMP NOT NULL, JOBINTERVALLBEGIN INTEGER NOT NULL, JOBINTERVALLEND INTEGER NOT NULL, JOBINTERVALLACTIVE INTEGER, JOBINTERVALLCYCLETIME INTEGER NOT NULL, JOBFILTERBEGIN INTEGER, JOBFILTEREND INTEGER, JOBFILTERACTIVE INTEGER, JOBFILTERNEGATION INTEGER, JOBDATEINTERVALL VARCHAR2(256) NOT NULL, JOBWDAYINTERVALL VARCHAR2(256) NOT NULL, JOBWEEKINTERVALL VARCHAR2(256) NOT NULL, JOBMONINTERVALL VARCHAR2(256) NOT NULL, JOBDAYMODE VARCHAR2(256) NOT NULL, JOBEXECCOUNTER INTEGER DEFAULT 0 NOT NULL, JOBEVENTID INTEGER NOT NULL, JOBDESCRIPTIONSIGN VARCHAR2(40), JOBDESCRIPTIONID INTEGER NOT NULL, JOBFILTERWEEKDAYACTIVE INTEGER, JOBFILTERWEEKDAYNEGATION INTEGER)]
      
      liquibase.exception.MigrationFailedException: Migration failed for change set ./db.init_schema.xml::1457342360801-20::envinet:
      
           Reason: liquibase.exception.DatabaseException: ORA-00984: column not allowed here
      
       [Failed SQL: CREATE TABLE NMC.JOBDESCRIPTION (JOBID VARCHAR2(40) NOT NULL, EXECUTIONTYPE INTEGER NOT NULL, EXECUTABLENAME VARCHAR2(512) NOT NULL, ACTIVATED INTEGER DEFAULT 1 NOT NULL, NEXTACTIVATIONTIME TIMESTAMP DEFAULT UNSUPPORTED:1990-01-01T00:00:00 NOT NULL, LASTACTIVATIONTIME TIMESTAMP NOT NULL, TIMESERVICEID INTEGER NOT NULL, TIMEZONE VARCHAR2(50) NOT NULL, DSTMODE VARCHAR2(50) NOT NULL, JOBBEGIN TIMESTAMP NOT NULL, JOBINTERVALL INTEGER, JOBEND TIMESTAMP NOT NULL, JOBCYCLETIME INTEGER, JOBCYCLETYPE INTEGER, JOBCYCLEACTIVE INTEGER, NEXTJOBCYCLEBEGIN TIMESTAMP NOT NULL, JOBINTERVALLBEGIN INTEGER NOT NULL, JOBINTERVALLEND INTEGER NOT NULL, JOBINTERVALLACTIVE INTEGER, JOBINTERVALLCYCLETIME INTEGER NOT NULL, JOBFILTERBEGIN INTEGER, JOBFILTEREND INTEGER, JOBFILTERACTIVE INTEGER, JOBFILTERNEGATION INTEGER, JOBDATEINTERVALL VARCHAR2(256) NOT NULL, JOBWDAYINTERVALL VARCHAR2(256) NOT NULL, JOBWEEKINTERVALL VARCHAR2(256) NOT NULL, JOBMONINTERVALL VARCHAR2(256) NOT NULL, JOBDAYMODE VARCHAR2(256) NOT NULL, JOBEXECCOUNTER INTEGER DEFAULT 0 NOT NULL, JOBEVENTID INTEGER NOT NULL, JOBDESCRIPTIONSIGN VARCHAR2(40), JOBDESCRIPTIONID INTEGER NOT NULL, JOBFILTERWEEKDAYACTIVE INTEGER, JOBFILTERWEEKDAYNEGATION INTEGER)]
      
      	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:637)
      
      	at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53)
      
      	at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:78)
      
      	at liquibase.Liquibase.update(Liquibase.java:202)
      
      	at liquibase.Liquibase.update(Liquibase.java:179)
      
      	at liquibase.integration.commandline.Main.doMigration(Main.java:1205)
      
      	at liquibase.integration.commandline.Main.run(Main.java:191)
      
      	at liquibase.integration.commandline.Main.main(Main.java:129)
      
      Caused by: liquibase.exception.DatabaseException: ORA-00984: column not allowed here
      
       [Failed SQL: CREATE TABLE NMC.JOBDESCRIPTION (JOBID VARCHAR2(40) NOT NULL, EXECUTIONTYPE INTEGER NOT NULL, EXECUTABLENAME VARCHAR2(512) NOT NULL, ACTIVATED INTEGER DEFAULT 1 NOT NULL, NEXTACTIVATIONTIME TIMESTAMP DEFAULT UNSUPPORTED:1990-01-01T00:00:00 NOT NULL, LASTACTIVATIONTIME TIMESTAMP NOT NULL, TIMESERVICEID INTEGER NOT NULL, TIMEZONE VARCHAR2(50) NOT NULL, DSTMODE VARCHAR2(50) NOT NULL, JOBBEGIN TIMESTAMP NOT NULL, JOBINTERVALL INTEGER, JOBEND TIMESTAMP NOT NULL, JOBCYCLETIME INTEGER, JOBCYCLETYPE INTEGER, JOBCYCLEACTIVE INTEGER, NEXTJOBCYCLEBEGIN TIMESTAMP NOT NULL, JOBINTERVALLBEGIN INTEGER NOT NULL, JOBINTERVALLEND INTEGER NOT NULL, JOBINTERVALLACTIVE INTEGER, JOBINTERVALLCYCLETIME INTEGER NOT NULL, JOBFILTERBEGIN INTEGER, JOBFILTEREND INTEGER, JOBFILTERACTIVE INTEGER, JOBFILTERNEGATION INTEGER, JOBDATEINTERVALL VARCHAR2(256) NOT NULL, JOBWDAYINTERVALL VARCHAR2(256) NOT NULL, JOBWEEKINTERVALL VARCHAR2(256) NOT NULL, JOBMONINTERVALL VARCHAR2(256) NOT NULL, JOBDAYMODE VARCHAR2(256) NOT NULL, JOBEXECCOUNTER INTEGER DEFAULT 0 NOT NULL, JOBEVENTID INTEGER NOT NULL, JOBDESCRIPTIONSIGN VARCHAR2(40), JOBDESCRIPTIONID INTEGER NOT NULL, JOBFILTERWEEKDAYACTIVE INTEGER, JOBFILTERWEEKDAYNEGATION INTEGER)]
      
      	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:356)
      
      	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57)
      
      	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125)
      
      	at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1229)
      
      	at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1211)
      
      	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600)
      
      	... 7 common frames omitted
      
      Caused by: java.sql.SQLSyntaxErrorException: ORA-00984: column not allowed here
      
      
      
      	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
      
      	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
      
      	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
      
      	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
      
      	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
      
      	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
      
      	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:202)
      
      	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:45)
      
      	at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:933)
      
      	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1075)
      
      	at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1718)
      
      	at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1678)
      
      	at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:332)
      
      	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352)
      
      	... 12 common frames omitted
      
      
      
      
      
      For more information, please use the --logLevel flag
      
      script returned exit code 255
      

      The change sets look like this:

       <changeSet author="envinet" id="1457342360801-20">
              <createTable tableName="JOBDESCRIPTION">
                  <column name="JOBID" type="varchar(40)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="EXECUTIONTYPE" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="EXECUTABLENAME" type="varchar(512)">
                      <constraints nullable="false"/>
                  </column>
                  <column defaultValueNumeric="1" name="ACTIVATED" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column defaultValueDate="1990-01-01 00:00:00.0" name="NEXTACTIVATIONTIME" type="timestamp">
                      <constraints nullable="false"/>
                  </column>
                  <column name="LASTACTIVATIONTIME" type="timestamp">
                      <constraints nullable="false"/>
                  </column>
                  <column name="TIMESERVICEID" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="TIMEZONE" type="varchar(50)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="DSTMODE" type="varchar(50)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBBEGIN" type="timestamp">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBINTERVALL" type="int"/>
                  <column name="JOBEND" type="timestamp">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBCYCLETIME" type="int"/>
                  <column name="JOBCYCLETYPE" type="int"/>
                  <column name="JOBCYCLEACTIVE" type="int"/>
                  <column name="NEXTJOBCYCLEBEGIN" type="timestamp">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBINTERVALLBEGIN" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBINTERVALLEND" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBINTERVALLACTIVE" type="int"/>
                  <column name="JOBINTERVALLCYCLETIME" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBFILTERBEGIN" type="int"/>
                  <column name="JOBFILTEREND" type="int"/>
                  <column name="JOBFILTERACTIVE" type="int"/>
                  <column name="JOBFILTERNEGATION" type="int"/>
                  <column name="JOBDATEINTERVALL" type="varchar(256)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBWDAYINTERVALL" type="varchar(256)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBWEEKINTERVALL" type="varchar(256)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBMONINTERVALL" type="varchar(256)">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBDAYMODE" type="varchar(256)">
                      <constraints nullable="false"/>
                  </column>
                  <column defaultValueNumeric="0" name="JOBEXECCOUNTER" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBEVENTID" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBDESCRIPTIONSIGN" type="varchar(40)"/>
                  <column name="JOBDESCRIPTIONID" type="int">
                      <constraints nullable="false"/>
                  </column>
                  <column name="JOBFILTERWEEKDAYACTIVE" type="int"/>
                  <column name="JOBFILTERWEEKDAYNEGATION" type="int"/>
              </createTable>
          </changeSet>
      

        Attachments

          Activity

            People

            • Reporter:
              simon.narkprasert Simon Narkprasert
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: