aga pillub siis sellist:
1. The Locale ID is not installed on this system
2. The component locale ID does not match the connection manager Locale ID
Põhjus selline, et Data Flow Taskis on Ole DB Source -> Properties LocaleID näiteks Estonian aga Flat faili Locale ID on näiteks English(United States) ja nüüd SSIS üritab andmeid tõmmata
Estonian -> English(United States) peale aga see talle kohe kuidagi ei meeldi.
Flat failil tuleb LocaleID panna sama, mis on Ole DB Source. Lihtsalt sellega, et muuda Flat file properties alt LocaleId ära ei pruugi õnnestuda. Kustuta olemasoleva Flat File connection ära ja Data Flow pealt ka minema ning lohista uus Flat file destination Data Flow peale. Ühenda OLE DB Sourcega ning loo Flat fail uuesti
Punkt 1 vastu rohtu ei ole otsinud, muud kui säti igal pool Locale ID English(United States), see on alati olemas.
Ahaa, andmebaasi SP-s, kui kasutad tabelmuutujat ja mingit fikseeritud tekstikonstanti siis ära unusta COLLATION DATABASE_DEFAULT kasutamast.
Näiteks kui SP-s salvestad midagi alguses tabelmuutujasse ja siis sealt pärast loed edasi näiteks:
DECLARE @paat TABLE ( nimi NVARCHAR(200) COLLATE DATABASE_DEFAULT, nr INT)
INSERT INTO @paat (nimi, nr) SELECT midagi, number FROM DBO.TABEL
ja kui nüüd sellest @paat tabelist edasi midagi loed näiteks:
SELECT nimi, CASE WHEN nr = 1 THE 'JAH' ELSE 'EI' END AS kuidas FROM @paat
siis "nimi" tuleb andmebaasi järjestuses (COLLATION) "kuidas" aga võetakse serveri oma ja
see SSIS-ile ka ei pruugi meeldida, tuleb seega järjestus ära määrata
SELECT nimi, CASE WHEN nr = 1 THE 'JAH' COLLATE DATABASE_DEFAULT ELSE 'EI' COLLATE DATABASE_DEFAULT END AS kuidas FROM @paat
Võid ühest hädast jälle lahti saada
Blogged with the Flock Browser