ここでは、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 の値をもとに文字セットを判断します。
このパラメータを渡すことで、接続に要する時間を短縮できます。
とありますので、積極的に指定したいパラメータです。