Dimension Health Check Error

Dec 24, 2007 at 1:19 PM
Hi,

In version 1.2.0.0 and 1.2.0.1 an error was introduced in the "Dimension Health Check".

This is error message I got in a Sybase IQ 12.6 (Adaptive Servicer Anywhere 9.0) that did not exists in the previous versions.

I think the problem is that IQ 12.6 does not allow to create an identifier starting with a number 0-9. E.g. 48a747329f0042d6b34198f282d3a2

Event Month UK: Dimension Health Check
Checks whether attribute relationships hold true according to the data.
Also checks definition of attribute keys to determine if they are unique.

Problems

Attempt to validate key and name relationship for attribute Event Month UK ED UK Month failed:Syntax error or access violation: near '.48' in y.48... at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.DataWarehouse.Design.DataSourceConnection.Fill(DataSet dataSet, String sql, CommandBehavior commandBehavior) at Microsoft.DataWarehouse.Design.DataSourceConnection.Fill(DataSet dataSet, String sql) at BIDSHelper.DimensionHealthCheckPlugin.Check(Dimension d) SQL query was: select y.48a747329f0042d6b34198f282d3a2 as DWMONTHID ,y.cad4e33afeb845d08c6c44cdff4e85 as MASMONTHABBREVIATION from ( select distinct MASDVEVENTDATE19902010.DWMONTHID as 48a747329f0042d6b34198f282d3a2,MASDVEVENTDATE19902010.MASMONTHABBREVIATION as cad4e33afeb845d08c6c44cdff4e85 from MAS.MASDVEVENTDATE19902010 MASDVEVENTDATE19902010 ) y join ( select 48a747329f0042d6b34198f282d3a2 from ( select distinct MASDVEVENTDATE19902010.DWMONTHID as 48a747329f0042d6b34198f282d3a2 ,MASDVEVENTDATE19902010.MASMONTHABBREVIATION as cad4e33afeb845d08c6c44cdff4e85 from MAS.MASDVEVENTDATE19902010 MASDVEVENTDATE19902010 ) x group by 48a747329f0042d6b34198f282d3a2 having count()>1 ) z on coalesce(y.48a747329f0042d6b34198f282d3a2,0) = coalesce(z.48a747329f0042d6b34198f282d3a2*,0)
Attempt to validate attribute relationship Event Month UK ED UK Month -> Event Month UK ED UK Year failed:Syntax error or access violation: near '.2' in y.2... at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.DataWarehouse.Design.DataSourceConnection.Fill(DataSet dataSet, String sql, CommandBehavior commandBehavior) at Microsoft.DataWarehouse.Design.DataSourceConnection.Fill(DataSet dataSet, String sql) at BIDSHelper.DimensionHealthCheckPlugin.Check(Dimension d) SQL query was: select y.2c8b6a2864604674a997c81ea25c2a as DWMONTHID ,y.8e431a482ad1455d9a6ca8e5e364ad as MASYEARUK from ( select distinct MASDVEVENTDATE19902010.DWMONTHID as 2c8b6a2864604674a997c81ea25c2a ,MASDVEVENTDATE19902010.MASYEARUK as 8e431a482ad1455d9a6ca8e5e364ad from MAS.MASDVEVENTDATE19902010 MASDVEVENTDATE19902010 ) y join ( select 2c8b6a2864604674a997c81ea25c2a from ( select distinct MASDVEVENTDATE19902010.DWMONTHID as 2c8b6a2864604674a997c81ea25c2a ,MASDVEVENTDATE19902010.MASYEARUK as 8e431a482ad1455d9a6ca8e5e364ad from MAS.MASDVEVENTDATE19902010 MASDVEVENTDATE19902010 ) x group by 2c8b6a2864604674a997c81ea25c2a having count()>1 ) z on coalesce(y.2c8b6a2864604674a997c81ea25c2a,0) = coalesce(z.2c8b6a2864604674a997c81ea25c2a*,0)
Coordinator
Dec 24, 2007 at 3:31 PM
As the docs say, only SQL Server and Oracle are currently supported. Sorry about that. It Sybase works sometimes, it's purely luck.

I'll put this on the list to look at, but no promises. (If there are other people that would benefit from Sybase support, please postback here.)

For now, I would suggest copying and pasting the erroring SQL and then fixing it and running it manually. As long as it returns no rows, there were no "health check" errors.