2017-12-01 6 views
0

オラクルDBへの中国のシンボルを貼り付けます。私は、Oracle DBへの中国のシンボルを貼り付けしようとしています

NLS_NCHAR_CHARACTERSET = 'UTF8' 
NLS_LANGUAGE = 'RUSSIAN' 
NLS_TERRITORY = 'RUSSIA' 
NLS_CURRENCY = '?.' 
NLS_ISO_CURRENCY = 'RUSSIA' 
NLS_NUMERIC_CHARACTERS = '','' 
NLS_CHARACTERSET = 'CL8MSWIN1251' 
NLS_CALENDAR = 'GREGORIAN' 
NLS_DATE_FORMAT = 'DD.MM.RR' 
NLS_DATE_LANGUAGE = 'RUSSIAN' 
NLS_SORT = 'RUSSIAN' 
NLS_TIME_FORMAT = 'HH24:MI:SSXFF' 
NLS_TIMESTAMP_FORMAT = 'DD.MM.RR HH24:MI:SSXFF' 
NLS_TIME_TZ_FORMAT = 'HH24:MI:SSXFF TZR' 
NLS_TIMESTAMP_TZ_FORMAT = 'DD.MM.RR HH24:MI:SSXFF TZR' 
NLS_DUAL_CURRENCY = '?.' 
NLS_COMP = 'BINARY' 
NLS_LENGTH_SEMANTICS = 'BYTE' 
NLS_NCHAR_CONV_EXCP = 'FALSE' 
NLS_RDBMS_VERSION = '11.2.0.4.0' 

クエリ:結果フィールドが含まれて

update my_table set message = '© § english пепелац 百' where id = 252615 

メッセージフィールドタイプは、NVARCHAR2

次のとおりです。 '©§engl​​ishпепелац?'中国のシンボルはありません。私は手で '百' 記号を貼り付ける場合

しかし、(PL/SQL Developerで編集のためにオープンmy_tableに、ペーストの値は、セルとコミットするために)、それは動作しますが、DBを返します: '©英語пепелац§百'

NLS_LANGを ".zhs16gbk"、 ".AL32UTF8"、 "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"などと設定しようとしましたが、それは役に立ちません。

PL/SQL Developer 10.0.5.1710; Windows 7(64ビット)6.1ビルド7601(サービスパック1)。 oracleクライアント11.2.0。

ヘルプヽ(゜□゜)ノ

+0

どのツール/ドライバを使用しますか? –

+0

DBMSで手作業で「百」記号を貼り付けたらどういう意味ですか? –

+0

PL/SQL Developerで編集用にmy_tableを開き、値をセルに貼り付けてコミットします。 – Vladimir

答えて

1

は(言語および地域がちょうど.AL32UTF8を確保するため、あなた次第です)

が続いてPL/SQL Developerの設定に行く RUSSIAN_RUSSIA.AL32UTF8にご NLS_LANG値を設定します - >設定 - >ファイル - >フォーマット - >エンコーディング

と "常にUTF8" に設定

あなたは "常にANSI" または "自動検出" を使用すると、次にPL/SQL DeveloperはANSIコードページでSQLスクリプトを保存します、ほとんどの場合、漢字をサポートしていないCP1252(https://www.microsoft.com/resources/msdn/goglobal/default.mspxを参照)。

注:UTF-8は、Oracleキャラクタ・セットAL32UTF8です。 Oracleキャラクタ・セットUTF8は、CESU-8を意味しますが、若干異なります。

データベースキャラクタセットがCESU-8で、クライアントキャラクタセットがUTF-8であるにもかかわらず、Oracleドライバが自動変換を行います。これがNLS_LANGの主な目的です。

関連する問題