i see what is problem, but i don't sure for workaround
This isn't problem with system tables, than general, but it depend from you naming
for example,
DatabaseMetadata.getColumns("","OLAPSYS","ALL$OLAP2_CATALOGS",null)
will return double column name, but it is for two tables :
ALL$OLAP2_CATALOGS
and
ALL$OLAP2UCATALOGS
sign '_' is escape sequence and tablePattern parameter is pattern (not ture name) and it is return correct result
this isn't bug, but it is problem and i think that it problem exists for every JDBC compliant
database - another database haven't this exotic table name, only
you can check tableName again after getColumns and use only correct table
I think that this will resolve problem
JDBCReader line 446
Code:
if(!tableName.equals(table.getName())) {
log.debug("Table name " + tableName + " does not match requested " + table.getName() + ". Ignoring column " + columnName + " since it either is invalid or a duplicate" );
continue;
}
change to :
Code:
if(!tableName.equals(table.getName())) {
log.debug("Table name " + tableName + " does not match requested " + table.getName() + ". Ignoring column " + columnName + " since it either is invalid or a duplicate" );
break;
}
regards