2017-05-15 6 views
0

oracle dbを操作するためにPLSQL開発者を使用しています。私はこのようなコードを保存するビューをコンパイルすると:コンパイルによって、PLSQLデベロッパーのutf-8文字が疑問符に変換されます。

select 'xidmət' as service from dual 

文字列の'ə'文字が'?'文字になります。

私はそれがいくつかのoracleまたはplsqlデベロッパー構成の問題だと思いますが、私は何が分からないのですか。問題は何と思いますか?

+0

データベース、文字セット、および* nls *設定の設定を確認してください。現在のセッションのDBを上書きする設定があるかもしれないので、DBに接続するために使用するクライアントで同じものをチェックしてください。この文字が属するエンコーディングを確認してください。それがUTF-8なら、他のすべてがutf-8であることを確認してください。 select文を実行しているので、これをDBに入れるつもりがない場合は、クライアントの設定が重要です。 – g00dy

+0

PLSQL Developerが 'NLS_LANG'設定を使用しているかどうかわかりません。はいの場合は、このガイドに従ってください:http://stackoverflow.com/questions/33783902/odbcconnection-returning-chinese-characters-as/33790600#33790600 –

答えて

0

言語の設定に従って、システムのNLS_LANGパラメータを構成する必要があります。ここにリンクがあります:

例えば

http://www.nazmulhuda.info/setting-nls_lang-environment-variable-for-windows-and-unix-for-oracle-database

、私たちは "ąčęėįšųū" などの文字を持っています。ですから、pl/sqlでそれらを見るために、値 "LITHUANIAN_LITHUANIA.BLT8MSWIN1257"を持つNLS_LANGを設定します。

希望します。がんばろう。

0

まず、あなたの文字セットは、これを使用しているかどうか確認する:

select value from nls_database_parameters where parameter='NLS_CHARACTERSET'; 

その後CHARSETは、その選択を求められる値ですAMERICAN_AMERICA.CHARSETためにあなたのNLS_LANG環境変数を設定します。 Windowsの場合は、コントロールパネル、システム、拡張、環境変数に移動し、システム変数のNLS_LANGを設定する必要があります。

Oracleは、クライアントとデータベースの間で少なくとも「ワン・パス」変換を行いますが、問題は、クライアント・ソフトウェアを含め、クライアントとデータベースの間に非常に多くのレイヤーが存在するため、クライアントNLS_LANGデータベースを設定します。

また、その文字がどのように挿入されたかによって異なります。別のクライアント・ツールを使用して別のNLS_LANGを使用して挿入されている可能性があります。そのため、拡張ASCII文字(または外字)を更新してから選択したビューから一貫したビューを取得する必要があります。

関連する問題