donderdag 11 juni 2009

Data type wijzigen in een DSV Named Query voor SSAS geeft Max Length Error

De situatie is als volgt:

In een DSV wordt gebruik gemaakt van een named query voor een fact tabel.
Tijdens het maken van de relaties op een column van de fact tabel en de column in een dim tabel krijg je de error: The abc Source Column and xyz Destination Column have different data types....

Nu blijk je in de named query een convert te hebben gebruikt voor de abc column:
CONVERT(VARCHAR(8), GETDATE(),112) AS 'abc'

De xyz column in de dim tabel is van data type INT.

De oplossing zou dus zijn om de convert uit te breiden en deze te casten als INT:
CAST(CONVERT(VARCHAR(8), GETDATE(),112)) AS INT) AS 'abc'

Dit resulteerd echter in de volgende error:
"Max length applies to string data type only. You cannot set column 'abc' property maxlength to be non-negative number".

De enige oplossing die ik heb kunnen hanteren om hier aan voorbij te komen is:
1 - Open de named query en copy de query tekst
2 - Delete de named query van de DSV
3 - Voeg een nieuwe named query toe aan de DSV
4 - Paste de query in de query editor en wijzig de convert...
5 - Save de nieuw Named query

Dit wordt nu door wel geaccepteerd.
Iemand een andere oplossing? Laat het dan even weten.....

Geen opmerkingen: