2

別のデータベース (10.0.5500) に挿入する必要がある SQL Server 2008 データベース (10.0.2841) に列があります。宛先データベースに挿入する前に、列に windows-1252 文字のみが含まれていることを確認する必要があります。

現在、これを行うために SSIS パッケージを使用しています。私のソースクエリには、機能する「置換」の山がありますが、それは非常に醜く、すぐに保守できなくなります。

select replace(replace(rep.......etc(column, 'º', ''), nchar(0x9D), ''), ......etc from table

これを行うにはもっと良い方法があるはずですが、それが何であるかはわかりません。では、クエリ (またはおそらくスクリプト コンポーネント) で、「このエンコーディングで機能しない文字がここにある場合は、代わりに空の文字列を指定してください」と言うにはどうすればよいでしょうか?

4

2 に答える 2

0

おそらく、スクリプト変換をデータ フローに追加し、.NET Framework などを適用します。たとえば、Encoding.Convert を参照してください。

于 2012-12-01T11:12:51.267 に答える
0

あなたのsourcedbの照合が宛先dbとは異なると仮定しています。おそらく、COLLATE を使用して、照合を宛先データベースの照合に変更できます。例えば:

SELECT
  column COLLATE Latin1_General_CI_AS
FROM table
于 2012-11-30T07:32:36.310 に答える