アプリケーションがデータベースから特殊文字を読み取っているかどうかをテストし、まったく同じ方法で表示する必要があります。このためには、使用可能なすべての特殊文字をデータベース表に移入する必要があります。しかし、私はどのようにSQLの挿入クエリで特殊文字を指定できるかわかりません。誰も私がクエリに特殊文字を挿入できる例に案内してくれますか?簡単にするために、テーブルがAreaとAvg_Temperatureが2つの列であるCityテーブルであるとします。 Avg_Temperature列に度(celcius/farhenheit)記号を挿入する必要がある場合は、どのようにクエリを書く必要がありますか?特殊文字を入力すると、Oracleテーブルでエラーが発生する
* [14:50 ESTで2012年1月9日の編集] *以下ジャスティン洞窟の提案を1として、私は以下の分析を行った:
表:create table city(area number, avg_temperature nvarchar2(10));
日: insert into city values (1100, '10◦C');
Query:
select dump(avg_temperature, 1010) from city where area = 1100;
O/P
DUMP(AVG_TEMPERATURE,1010)
----------------------------------------------------------
Typ=1 Len=8 CharacterSet=AL16UTF16: 0,49,0,48,0,191,0,67
Query
select value$ from sys.props$ where name='NLS_CHARACTERSET';
O/P
VALUE$
----------------
WE8MSWIN1252
Query:
select value$ from sys.props$ where name='NLS_NCHAR_CHARACTERSET';
O/P
----------------
AL16UTF16
インサートは、ジャスティン洞窟suggesteとして台無しに特殊文字をしているようですd。しかし、なぜこれが起こっているのか理解できません。誰でも関連提案を提供してもらえますか?
データベースの文字セットとは何ですか?各国の文字セットとは何ですか?データをVARCHAR2列にロードしていますか?またはNVARCHAR2列?キャラクタはデータベースキャラクタセットに存在しますか? –
@JustinCave:データベースキャラクタセット:WE8MSWIN1252;ナショナルCS:AL16UTF16。 NVARCHAR2にデータをロードしています。キャラクターセットにキャラクターが存在するかどうかわかりません!私は既存のデータベースにapplcnを構築するように言われているので、私はこれらの問題にぶつからないようにしたいと思っていました。上記のキャラクタセットで許可されている文字を見つけることができる場所を教えてください。 –
@ darkie15:UTF16を使用している場合、人類にはほとんどすべての文字が含まれていても問題ありません。実際の問題は、クライアントからサーバーへの転送(およびインポートファイル、Webページ、電子メールなどのすべての中間ステップ)です。 –