(MSSQL)データベースを受け取りましたが、残念ながらデータが破損しています。一部のデータセットでは、ドイツ語の特殊文字(ä/ü/ö)が 記号(Unicode:\ uFFFD)に置き換えられました。
これは、照合やさまざまなエンコーディングの使用などの問題ではなく(すでに確認しました)、元のデータを提供した人のせいです。これらのシンボルはデータの意味に「ハードコーディング」されていると確信しているからです。それらは「常に」そこにあり、おそらくデータプロバイダーによる移行の失敗(または同様のもの)によって存在したことを示しています。
これらのエラーがないと適切なダンプを取得できないため、現在、影響を受けるデータセットのみを選択する可能性を探しています。私はすでに[...] WHERE LIKE '%\ uFFFD%'ステートメントを試しましたが(DBがこれらのシンボルを内部でUnicodeコードにデコードすることを期待しています)、役に立ちませんでした。[...] WHERE LIKE '% %'は、影響を受けるすべての列だけでなく、通常の?を含むすべてのデータセットも表示するため、部分的に機能します。文字(出力が大きすぎるため、このメソッドは使用できません)。
を含むデータセットのみを具体的に選択する可能性があるかどうか誰かが知っていますか?
よろしく、daZza
結果は、照合設定によって異なります。私はそれをいくつかの異なるもので動作させることができました。最も一般的なのはこれだと思います:
SELECT *
FROM (VALUES (N'A�A'), (N'A?A'), (N'AAA'), (N'�A'), (N'A�'), (N'�')) t (c)
WHERE CHARINDEX(N'�' COLLATE Latin1_General_BIN, C) > 0;
または
SELECT *
FROM (VALUES (N'A�A'), (N'A?A'), (N'AAA'), (N'�A'), (N'A�'), (N'�')) t (c)
WHERE C LIKE N'%�%' COLLATE Latin1_General_BIN;
LIKEを使用する場合、バイナリソートを使用する照合でのみ機能するようです(すべての照合を試したわけではありませんが)。これらは次を使用して取得できます。
SELECT name, description
FROM fn_helpcollations()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加