あなたの習慣について教えてください!!

お世話になります。教えてください。

Oracle9iのnchar型について詳しく知りたいのですが。
char型の場合、データベースの作成時の文字コードで文字が格納
されますが、nchar型の場合、unicodeで格納されるという
認識でいます。
例えば、SJISには存在しない文字は、char型の列に登録すると、
文字化けするので、
nchar型の列に登録しようと思うのですが、nchar型の列の値を
SQLPlusやosqledit,objectbrowserで表示しても '?' と
表示されます。 正しく nchar型の列の値を表示する
にはどうすればいいのでしょうか?
例えば、VB.netなどのプログラムから取得した場合には、正しく
文字化けせずに取得できるという認識でいいのでしょうか?

 よろしくお願いします。

A 回答 (1件)

データベースに格納される情報は、データベースキャラクタセットで決まります。

(つまりunicodeとは限らない)
クライアント側でデータと取り出した場合は、クライアント側のNLSに合わせたコード変換がされて、
クライアントの文字セットで取り出せます。
登録もクライアントの文字セットで登録/更新した文字列は、データベースのキャラクタセットに変換し格納します。
NLSで変換不能な文字については、?に置き換わると思いますが・・

どのようにして登録されたのか判りませんが、データが正しく登録されていて、正しく設定されたクライアントなら
SQLPLUSでも、それなりに表示されるはずですよ。(OSが表現できない文字とかは、部分的に?になるけど)

この回答への補足

回答ありがとうございます。
重ねて質問させてもらいますが、nchar型に関しても回答いただいた内容だと考えて間違いないのでしょうか?じゃあ何のために、char型と
nchar型が存在するのかを知りたいです。

補足日時:2009/05/25 10:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す