

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問させていただきます。
以下2点についてどなたかコメント願います。
1.(Oracleでいうキャラクターセット)はどこで定義するのでしょうか?
2.OracleでいうNLS_LANGに相当するものはあるのでしょうか?
(ひょっとしたらマイクロソフト製品なのでサーバもクライアントもCP932固定なのでしょうか?)
根本的にはシステム構築する上で『極力文字化けに遭遇したくない』思い出このような質問をさせていただきました。
『文字化け』について注意点などありましたら合わせてコメントいただければ助かります。
以上よろしくお願いします。
No.2ベストアンサー
- 回答日時:
Windowsのロケールの設定を日本語にした状態でSQLServerをインストールした場合、cp932がデフォルトの照合順序になります。
照合順序については参考URLをご覧下さい。SQLServerではわかりませんが、PostgresではJDBCドライバ部分で変換していたように記憶しています。ODBCドライバではAutoTranslateという機能があります。
このため、ODBC接続で何も考えずにvarcharを使用するとcp932になります。
参考URL:http://www.microsoft.com/japan/msdn/sqlserver/sq …
No.1
- 回答日時:
1.2.の質問からはずれている回答かもしれませんが・・・
SQLServerでは使用するデータ型によって文字コードが指定されます。
・データ型がchar、varchar、textの場合
MS932(≒Shift_JIS) 日本語環境の場合
・データ型がnchar、nvarchar、ntextの場合
Unicode
同一システム内でMS932を使用するか、Unicodeを使用するかどちらかに統一することができれば、システム内で文字化けが発生することはありません。
ただ、char系は使用するバイト数、nchar系は使用する文字数で確保するサイズを指定するので注意が必要です。
例えば、varchar(80)は80バイト確保されますので半角文字で80文字分、全角文字で40文字分保存できますが、nvarchar(80)は80文字分確保されるので全角半角関係なく80文字きっかり保存できます。
tantanaさん回答ありがとうございます。
データ型によって内部でのキャラクターセットが異なる点理解しました。
ついでに以下の点についても教えてください。
「日本語環境の場合」と条件を記載されておりますが、
具体的には「何を持って」日本語環境となるのでしょうか?
またDB内部のキャラクタセットと、クライアント側のキャラクタセットが
異なる場合(例:VARCHARのデータをJDBCにてアクセスするような場合)
MS932→Unicode(UTF02?)への変換は何処で行われるのでしょうか?
ご存知であれば教えてください。
困り度を「暇なときにでも」としたせいか、
私の質問が的を外しているのか、どなたからも
コメントがなく不安でおりました。
tantanaさんのコメントに内心かなりホッ!としています。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
存在しているファイルがロード...
-
文字化け
-
MySQLのリストアができない。
-
日本語TSVファイルのLOAD DATA ...
-
LIMIT で条件を満たしているの...
-
SQLのVARCHARとVARCHAR2の違い
-
LIKE で清音と濁音・半濁音を区...
-
テーブル作成でエラーが出てき...
-
VBAで変数内に保持された二次配...
-
mysqlがインストールされている...
-
ヌル値は記憶容量を必要としな...
-
プレースホルダを使った複数カ...
-
ユーティリティーとは?OPatch...
-
シングルクォーテーションとダ...
-
ERROR 1045 (28000) (using pas...
-
オラクルのデータ型・通貨について
-
postgreSQLのデータ型
-
MySQL の安全な再起動とコネク...
-
副問合せにLIKE文を使う方法は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
SQL Server のキャラクターセッ...
-
SQLで日本語データを入力したい...
-
MyODBC 日本語サーバー対応版 ...
-
phpでmysqlのデータを表示する...
-
PHP経由でMYSQLに全角文字を格...
-
MySQLの日本語LIKE検索について
-
日本語TSVファイルのLOAD DATA ...
-
文字コードMS932(Windows-31J...
-
急に文字化けを起こすようにな...
-
小泉純一郎は文字化けしないが...
-
MySQL コマンド上の文字化けを...
-
文字化け
-
テキストファイルからのデータ...
-
日本語のデータがインポートで...
-
存在しているファイルがロード...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
おすすめ情報