Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するMS-SQL Serverのカラムタイプは次の通りです。
データソースの型/内容 |
データソースのサイズ |
MS-SQL Serverの型 |
Unicode型 |
1-4000 |
nvarchar |
Unicode型 |
4001以上 |
ntext |
BLOB型/Unicode |
- |
ntext/イメージ(*) |
*記憶型式により異なります。
デフォルトの照合順序が設定されたデータベースでは、Unicodeに依存しないMS-SQL Serverのソート処理により、文字型項目のソート処理の結果と互換性があります。
埋込SQLの入力パラメータにUnicode特有の文字を渡す場合、パラメータの先頭文字にNを付加する必要があります。
例.select * from TESTTAB where UNICODEMOJI = N':1'
文字型255桁のカラムを含むデータソースをMagicで定義し、APG実行によりテーブル作成しようとすると「SQL0604N 列の長さ、精度、または位取り属性、特殊タイプ、構造化タイプ、構造化タイプの属性、関数、あるいはタイプ・マッピング "CHAR(255)" が無効です。 SQLSTATE=42611」とエラー表示され、テーブル作成できません。(2000326)
埋込SQLの入力パラメータ、およびDB SQLのパラメータにUnicode特有の文字を渡す場合、パラメータの先頭文字にNを付加する必要があります。
例.select * from TESTTAB where UNICODEMOJI = N':1' |
Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するOracleのカラムタイプは次の通りです。
データソースの型/内容 |
データソースのサイズ |
MS-SQL Serverの型 |
Unicode型 |
1-2000 |
NVARCHAR2 |
Unicode型 |
2001以上 |
NCLOB |
BLOB型/Unicode |
- |
NCLOB/BLOB (*) |
*記憶型式により異なります。
SQL WHERE句に Unicode 固有の文字を文字定数として使うことはできません。
埋込SQLのINOUTのパラメータが定義されたプロシージャに対して、出力パラメータにUnicode型項目を指定した場合、正しく動作しません。
埋込SQLの入力パラメータにUnicode固有の文字を指定する場合、バインド変数(接頭辞にコロン(:)でなく、チルダ(~)を指定)を指定してください.この場合、パラメータを''で囲む必要はありません。
Unicode 型項目を扱うためには、ファイルフォーマットを 7.x あるいはそれ以上にしてください。これは P.SQL の仕様制限によるものです。
Unicode 型項目をインデックスとした場合、正しく並ばないことがあります。これは P.SQL の問題で、「P.SQL8 SP3およびP.SQL SP2において対応されています。
AG-TECH社のホームページ http://www.agtech.co.jp/download/update/pervasive/psqlv8s3/history.html に、以下のような情報があります: 「49474 mkde mkde Btrieve WSTRING キーで UNICODE 文字列データの並べ替え順に問題があった。」