Postgres、Oracle
CREATE DATABASE単位で文字コードを設定できる
例)postgresの場合
CREATE DATABASE postgres WITH OWNER = postgres ENCODING = 'UTF8' CONNECTION LIMIT = -1;
SQLServer
使用するデータ型によって文字コードが指定されます。
- データ型がchar、varchar、textの場合:MS932
- データ型がnchar、nvarchar、ntextの場合:Unicode
JDBCでSQLServerに接続する際の注意点
JDBC Driver Version 2.0 では、CHAR、VARCHAR、LONGVARCHAR の各 JDBC 型のパラメーター値を送信するときにのみ、sendStringParametersAsUnicode プロパティがチェックされます。JDBC 4.0 の新しい National Character メソッドである、SQLServerPreparedStatement クラスおよび SQLServerCallableStatement クラスの setNString、setNCharacterStream、setNClob などのメソッドでは、このプロパティの設定に関係なく、常に、サーバーに対してパラメーター値が Unicode で送信されます。 CHAR、VARCHAR、LONGVARCHAR などの JDBC データ型の使用に伴うパフォーマンスを最適に保つためには、JDBC ドライバーのバージョン 2.0 を使用するアプリケーションは、sendStringParametersAsUnicode プロパティを "false" に設定し、National Character メソッド以外のメソッドである、SQLServerPreparedStatement クラスおよび SQLServerCallableStatement クラスの setString、setCharacterStream、setClob を使用する必要があります。 アプリケーションで sendStringParametersAsUnicode プロパティが "false" に設定されていて、National Character メソッド以外のメソッドを使用してサーバー側の Unicode データ型 (nchar、nvarchar、ntext など) にアクセスする場合に、National Character メソッド以外のメソッドで渡される文字列パラメーターの文字がデータベース照合順序でサポートされていないときには、一部のデータが失われる可能性があります。 アプリケーションでは、NCHAR、NVARCHAR、LONGNVARCHAR の各 JDBC データ型に対して、SQLServerPreparedStatement クラスおよび SQLServerCallableStatement クラスの National Character メソッドである setNString、setNCharacterStream、および setNClob を使用する必要がある点に注意してください。
接続プロパティ:sendStringParametersAsUnicode
sendStringParametersAsUnicode プロパティの既定値は "true" です。
- sendStringParametersAsUnicode プロパティが "true" に設定されている場合、文字列パラメーターは Unicode 形式でサーバーに送信されます。
- sendStringParametersAsUnicode プロパティが "false" に設定されている場合、文字列パラメーターは、Unicode ではなく ASCII/MBCS などの Unicode 以外の形式でサーバーに送信されます。
参考URL
最終更新:2009年10月29日 09:20