![]() ![]() ![]() ![]() |
||||||||||||||
Umlaute auf SQL Datenbank richtig stellenUnbedingt eine Sicherung machen
UrsacheDamals wurden die Umlaute in der SQL Datenbank durch die Charmaps in Kplus falsch gespeichert. Dadurch dass nun eine Direktbelieferung der Cognos Datenbank über Trigger erfolgt, müssen die Zeichensätze in der SQL Datenbank richtig gespeichert werden. Wenn man also die aktuellsten Charmaps für Kplus verwendet muss man auch die SQL Datenbank umstellen. Script - Umlaute richtig stellenUm die Daten in der Datenbank richtig darzustellen muss man als erstes folgenden Script im Microsoft SQL Management Studio ausführen. ab MSSQL 2005 select 'update ' + sys.objects.name + ' set ' + sys.columns.name + '=replace(replace(replace(replace(replace(replace(replace(' + sys.columns.name + ' COLLATE Latin1_General_CS_AS,''†'',''Ü''),''…'',''Ö''),''€'',''Ä''),''Ÿ'',''ü''),''š'',''ö''),''Š'',''ä''),''§'',''ß'');' from sys.columns inner join sys.objects on sys.objects.object_id=sys.columns.object_id inner join sys.types on sys.types.system_type_id = sys.columns.system_type_id and sys.types.name IN('varchar','char') where sys.objects.type='u' UNION select 'update ' + sys.objects.name + ' set ' + sys.columns.name + '=replace(replace(replace(replace(replace(replace(replace(cast(' + sys.columns.name + ' COLLATE Latin1_General_CS_AS as varchar(max)),''†'',''Ü''),''…'',''Ö''),''€'',''Ä''),''Ÿ'',''ü''),''š'',''ö''),''Š'',''ä''),''§'',''ß'');' from sys.columns inner join sys.objects on sys.objects.object_id=sys.columns.object_id inner join sys.types on sys.types.system_type_id = sys.columns.system_type_id and sys.types.name IN('text') where sys.objects.type='u' für MSSQL 2000 dieses Script verwenden select 'update ' + sysobjects.name + ' set ' + syscolumns.name + '=replace(replace(replace(replace(replace(replace(replace(' + syscolumns.name + ',''†'',''Ü''),''…'',''Ö''),''€'',''Ä''),''Ÿ'',''ü''),''š'',''ö''),''Š'',''ä''),''§'',''ß'');' from syscolumns inner join sysobjects on sysobjects.id=syscolumns.id inner join systypes on systypes.xtype = syscolumns.xtype and systypes.name IN('varchar','char') where sysobjects.type='u' Das Ergebnis muss man dann in eine neue Query Abfrage einfügen und ausführen. Achtung: Das kann recht lange dauern und den Server auslasten. update D_BAUKOLLPOS set BKO_INFO=replace(replace(replace (replace(replace(replace(replace(cast(BKO_INFO as varchar(max)) COLLATE Latin1_General_CS_AS,'†','Ü'),'…','Ö'),'€','Ä'), 'Ÿ','ü'),'š','ö'),'Š','ä'),'§','ß'); |
||||||||||||||
Zum Seitenanfang |
![]() ![]() |
|||||||||||||
|