Incorrect column name used for index

I’m using liquibase 3.1.1 and oracle 11g.

I used the generateChangeLog command from the command line against my development database.  Then I used the updateDatabase command from ant against a new schema.  So basically I’m exporting from one schema to create a base set of ddl and then using it to create a new schema.

The updateDatabase command worked perfectly until it got to this changeset:

   
       
           
       
   

It fails with an Oracle error:
Error executing SQL CREATE UNIQUE INDEX LIQUIBASE.PRACTICE_U1 ON LIQUIBASE.PRACTICE(SYS_NC00028$): ORA-00904: “SYS_NC00028$”: invalid identifier

But if I go into Toad and ask it to create the script for that index I get this:

DROP INDEX EMR.PRACTICE_U1;

CREATE UNIQUE INDEX EMR.PRACTICE_U1 ON EMR.PRACTICE
(UPPER(“DIRECTADDRESSDOMAIN”))
LOGGING
TABLESPACE EMRD
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MAXSIZE          UNLIMITED
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
            FLASH_CACHE      DEFAULT
            CELL_FLASH_CACHE DEFAULT
           )
NOPARALLEL;

Other indexes were created correctly.  It’s just this one that has a problem.  Why would liquibase have gotten that column name?

Is that a function-based index? They sometimes get strange column names. Or a dropped column?


Try it with the new 3.2.0 release, there have been some fixes around oracle index column names.

Nathan