See same kind of issue here:
https://developer.jboss.org/thread/271911
When i load an ODBC source into PowerBI that contains a teiid source, tables or tables within a model (schema) that contains underscores are not being loaded into PowerBI:
Error: DataSource.Error: The table has no visible columns and cannot be queried.
Details:
STATION_PIR
When i look into the issue above it should have to do something with simplified sql syntax. Is there a way to change this when importing a source? I'm using PowerBI desktop Version: 2.51.4885.581 32-bit (oktober 2017).
The teiid log shows me the following when importing the source into PowerBI:
10:12:23,861 DEBUG [org.teiid.ODBC] (New I/O worker #9) Modified Query: SELECT k.Name AS attname, convert(Position, short) AS attnum, TableName AS relname, SchemaName AS nspname, TableName AS relname FROM SYS.KeyColumns k WHERE UCASE(SchemaName) LIKE UCASE('cedlenergiediefstal') AND UCASE(TableName) LIKE UCASE('STATION_NEDU_SJV_DAG_AGG') AND KeyType LIKE 'Primary' ORDER BY attnum 10:12:23,862 DEBUG [org.teiid.PROCESSOR] (Worker50_QueryProcessorQueue22968) Request Thread ihyPSAKin1kW.4 with state NEW 10:12:23,862 DEBUG [org.teiid.PROCESSOR] (Worker50_QueryProcessorQueue22968) ihyPSAKin1kW.4 Command has no cache hint and result set cache mode is not on. 10:12:23,862 DEBUG [org.teiid.PROCESSOR] (Worker50_QueryProcessorQueue22968) ihyPSAKin1kW.4 executing SELECT k.Name AS attname, convert(Position, short) AS attnum, TableName AS relname, SchemaName AS nspname, TableName AS relname FROM SYS.KeyColumns k WHERE UCASE(SchemaName) LIKE UCASE('cedlenergiediefstal') AND UCASE(TableName) LIKE UCASE('STATION_NEDU_SJV_DAG_AGG') AND KeyType LIKE 'Primary' ORDER BY attnum10:12:23,863 DEBUG [org.teiid.PLANNER] (Worker50_QueryProcessorQueue22968) [LOW [Relational Planner] convert function not supported by source SYS - convert(k.Position, short) was not pushed] 10:12:23,863 DEBUG [org.teiid.PROCESSOR] (Worker50_QueryProcessorQueue22968) ProcessTree for ihyPSAKin1kW.4 SortNode(0) output=[k.Name AS attname, convert(k.Position, short) AS attnum, k.TableName AS relname, k.SchemaName AS nspname, k.TableName AS relname] [SORT] [attnum] ProjectNode(1) output=[k.Name AS attname, convert(k.Position, short) AS attnum, k.TableName AS relname, k.SchemaName AS nspname, k.TableName AS relname] [k.Name AS attname, convert(k.Position, short) AS attnum, k.TableName AS relname, k.SchemaName AS nspname, k.TableName AS relname] AccessNode(2) output=[k.VDBName, k.SchemaName, k.TableName, k.Name, k.KeyName, k.KeyType, k.RefKeyUID, k.UID, k.Position, k.OID] SELECT SYS.KeyColumns.Name, SYS.KeyColumns.Position, SYS.KeyColumns.TableName, SYS.KeyColumns.SchemaName FROM SYS.KeyColumns WHERE (UCASE(SYS.KeyColumns.SchemaName) = 'CEDLENERGIEDIEFSTAL') AND (UCASE(SYS.KeyColumns.TableName) LIKE 'STATION_NEDU_SJV_DAG_AGG') AND (SYS.KeyColumns.KeyType = 'Primary')