2
文字コードがUTF-8であることを確認して文字コードをシステムに誤って読み込む問題を修正しました。 UTF-8
エンコーディングのファイル。データベース全体で文字化けした文字 ` `を検索しています - Oracle
しかし、°F
は、�F
と読み込まれた不正な文字が挿入されたデータベーステーブル全体で多くのレコードを追加してしまいました。この問題を修正したにもかかわらず、この異常を修正するために今データベーステーブルを整理する必要があります。
誰でも私にこれを達成する方法を提案できますか?
をあなたは '<<いくつかの条件は、問題のデータを示し<
これは必ずしも文字化けしているとは限りません。その文字を表示するフォントが不足している可能性があります。 – Arafangion
@Arafangion:そうは間違いありません。私が言ったように、修正が行われ、新しい着信レコードに対して特殊文字を完全に見ることができます。 –
答えて
私は同じような問題を抱えていました。幸いにも、影響を受けた列の数は少数に制限されていて、それらの列はデータベース全体で同じ名前でした。
私は次のないスクリプトを書くことで、これを解決:
これは、適切な動的SQLを使用して、
user_constraints
とuser_tab_columns
のデータを取得し、対象の特定の列名をフィルタリングしました。ここでは、開始するための基本的なスケルトンがありますが、すぐに一緒にスローしたため、テストされていません。あなたが心配するトリガを持っている場合にも、あなたも、それらを無効にする必要があります:
出典
2012-02-21 04:37:49 ninesided
'REGEXP_REPLACEを使用してリスト内のすべてのテーブルを更新すると、 ' 'charは特定の文字ではなく無効なコードのプレゼンテーションであるため、これらのシンボルをすべて見つけるのは少し難しくなります – zerkms
@zerkmsどのようにデータが最初の場所で文字化けするようになったのか。 *は、Unicodeプロセッサによって無効なバイトシーケンスの代わりに使用される文字U + FFFD、 "置換文字"です。したがって、Javaがインポートを不正にすると、Javaがそこに置くので、 がデータベースの文字として保存される可能性があります。データがバイナリデータとしてデータベースに挿入され、出力のねじだけが差し込まれていた場合、それは異なるでしょう。 – deceze
あなたが壊れていると分かっている行を見つけて、ターゲット列で 'DUMP'関数を使用してください。これはあなたが探している 'CHAR'コードを与えます。 – ninesided
関連する問題