Liquibase-core not able to create snapshot of small case username/schema name for case-sensitive databases like Oracle

The issue is with small case database username.
Create a small case user in Oracle using below command:-
create user "demo" identified by <password> default tablespace users quota unlimited to users.
By enclosing the username in double-quotes, database will not create it in upper-case.
Give this username in the connection url so that the database will use it as a default catalog name.
After this our code is calling createSnapshot method as described below :-
SnapshotGeneratorFactory.getInstance().createSnapshot(compareControl.getSchemas(CompareControl.DatabaseRole.REFERENCE), getDatabase(), snapshotControl);
Inside this function, getDefaultCatalogName() method, implemented in liquibase.database.core.OracleDatabase , is called which return catalog name in upper case.
@Override public String getDefaultCatalogName() {//NOPMD return (super.getDefaultCatalogName() == null) ? null : super.getDefaultCatalogName().toUpperCase(Locale.US); }
And this DBUser in upper-case doesnot actually exists in database due to which DatabaseChangeLog.getChangeSets() is null.

NOTE:- i have set case-sensitive to true


Is there any way to handle case-sensitive database username in oracle.

Hi @aayushi095 - Welcome to the Liquibase Community!

I found a post on another forum that may help, but it’s not Liquibase specific: Case sensitive user name — oracle-tech

There are a few others I found on StackOverflow, but they reference a specific error message so I’m not sure it’s relevant. Are you seeing any error messages?