Environment
- SQLcl: 26.2.0.0
- Java: 21.0.12
- Liquibase: 4.33.0 (bundled with SQLcl)
Problem
I'm using SQLcl Projects together with Liquibase.
The database schema name is:
OPS$TEST
However, the following command fails:
lb update
or
lb update-sql
with the exception:
java.lang.IllegalArgumentException: Illegal group reference
The relevant part of the stack trace is:
java.lang.IllegalArgumentException: Illegal group reference
...
at oracle.dbtools.raptor.liquibase.util.LbUtils.replaceLiquibaseSchema(LbUtils.java:308)
...
Observation
If I explicitly specify a Liquibase schema that does not contain a $, for example:
lb update -liquibase-schema-name OPS_TEST
the error disappears and the update runs successfully.
This suggests that the problem is related to the schema name OPS$TEST being processed internally by SQLcl.
Question
Has anyone experienced the same issue?
Is this a known SQLcl 26.2 bug in LbUtils.replaceLiquibaseSchema() when the connected schema name contains a $?
Or is there a recommended way to use SQLcl Project and Liquibase with Oracle schemas whose names contain $?
Thank you!