2017-07-13 3 views
0

テキストファイルからデータを読み込み、oracleのUTL_FILEパッケージを使用してテーブルに読み込むプログラムを作成しました。数行を読んでいる間、いくつかの文字は特殊文字に変換得ている、例えば:メモ帳ファイルの文字をutl_file.get_lineプロシージャを使用して読み込み中に特殊文字に変換する

string in file = 63268982_GHC –EXH PALOMARES EVA 
value entered into database = 63268982_GHC âEXH PALOMARES EVA 

私は、関数を変換使用してみましたが、それは何も達成しませんでした。

My Oracleのバージョンは11gR2で、nlsの文字セットWE8ISO8859P1を使用しています。これらの文字列は物理的なファイル名を表しているので、ファイル名と一致させようとすると不一致が出ます。

convert('63268989_GHC âEXH PALOMARES','us7ascii','WE8ISO8859P1') 

が、結果は読みながら、テキストファイルにあったものとは異なっている:

は、私たちは以下のようにASCIIに戻って文字セットでOracleに格納された値を再変換してみました。誰もこの問題をどのように克服できるかをお勧めします。

答えて

0

ファイル内文字が正規ハイフン(-chr(45))は3つのバイトとして記憶En Dash/U+2013ない、226、128、147又は六角​​E2 10進、80、93、単一のマルチバイトとして個別に解釈ではなくこれらは–に対応し、hereです。

utl_file.fopen_ncharでファイルを開き、utl_file.get_line_ncharという行でファイルを開いてみてください。

Oracle 11gR2 Database Globalization Support Guide: Programming with Unicode.

関連する問題