[ Oracle ] データベースの文字コードを調べる ( NLS_CHARACTERSET )

Pocket

ここでは、Oracle データベースの文字コードを調べる SQL のサンプルを掲載しています。

スポンサーリンク

文字コードを調べる SQL
select 
   * 
from 
   nls_database_parameters 
where 
   parameter = 'NLS_CHARACTERSET'

PARAMETER          VALUE
-------------------------------
NLS_CHARACTERSET   AL32UTF8

上記は文字コードが UTF-8 のデータベースの場合の取得結果です。なお nls_database_parameters テーブルには、日付、タイムゾーンなどのパラメータも格納されています。

NLS って何の略?

NLS は National Language Support の略になります。詳しくは、オンラインマニュアル(National Language Support)で確認することができます。

クライアントの文字コード

データベースが扱う文字コードが上述のように UTF-8 であるからといって、クライアントアプリケーションも必ず同じ文字コードを使う必要はありません。同じであることは望ましいとは思います。

例えば、PHP から Oracle に接続する oci_connect 関数では、クライアント側で使用する文字コードを指定することができます。そのことからも、サーバとクライアントで異なる文字コードであってもよいことがわかります。

また、マニュアルによりますと、

Oracle クライアントライブラリが使う文字セットを指定します。これは、データベースが用いる文字セットと一致させる必要はありません。一致していない場合は、Oracle が最善を尽くしてデータベースの文字セットとの間の変換を行います。文字セットによっては、この変換結果がうまく使えないこともあります。また、変換にはそれなりの時間を要します。

省略した場合は、 Oracle クライアントライブラリは環境変数 NLS_LANG の値をもとに文字セットを判断します。

このパラメータを渡すことで、接続に要する時間を短縮できます。

とありますので、積極的に指定したいパラメータです。

参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *