1.1.4 NVarChar
NVarChar は可変長の文字フィールドで、最大長が 1 桁から 65,535 桁までのフィールドです。(文字の数です。バイト長ではありません。)
NVarChar フィールドは、あらゆるコードページの Alpha データを格納します。例えばリストの場合、NVarChar フィールドには1行目に日本語、別の行にフランス語が入ります。
NVarChar の分類は Unicode 文字列になります。
NVarChar は後続のブランクがあれば、それを意味あるものとして扱います。NVarChar の末尾にスペースを連結する場合、そのスペースは保持されます。ただし比較では、スペースは意味あるものとして扱われません。
一般的な事柄については、「1.1.1 フィールド・タイプについて」を参照してください。
フィールド定義の規則
NVarChar フィールドをリポジトリに定義するときの規則は以下のとおりです。
長さ | NVarChar は、1 から 65,535 桁の長さにすることができます。NVarChar には小数部はありません。 |
|---|---|
有効な鍵盤シフト | ブランク |
許容される属性 | AB、ASQN、CS、FE、LC、ND、RA、RB、RL、RLTB、SREV |
編集オプション | NVarChar は検索事前結合フィールドに使用することができます。 |
デフォルト | *NULL |
使用規則
区画タイプ | |
|---|---|
ファイル | NVarChar は RDMLX ファイルでのみ使用することができます。NVarChar は実フィールドまたはキー・フィールドとして使用することができます。キーとして使用する場合、長さは2,000文字を超えてはいけません。 |
論理ビュー | NVarChar はキー・フィールドとして使用することができます。キーとして使用する場合、長さは 2,000 文字より少なくする必要があります。 |
仮想フィールド | NVarChar はコード・フラグメント仮想フィールドと共に使用できます。 |
事前結合フィールド | NVarChar は検索事前結合フィールドに使用することができます。 |
RDML コマンド | DEF_FOOT、DEF_BREAK、およびDEF_LINEのみRDMLフィールドの印刷がサポートされます。ですから、レポートで使用するには、NVarChar を Alpha に変換する必要があります。 |
組み込み関数 | NVarChar を組み込み関数で使用する場合、有効な引数のタイプは「A」です。 |
特殊値 | *NULL、*NAVAIL |
変換 | 詳細については、「フィールド・タイプ変換」を参照してください。 |
使用に関する注意事項
- 作業フィールドはTYPE(*NVARCHAR)として定義することができます。
- 長さ 0 の NVarChar には、SQL 経由でのデータベースへの挿入または更新前にスペースが 1 個追加されます。これは、データベース間で一貫した動作を得るための処理です。スペースがないと、OracleはデータをSQL Nullとして扱いますが、厳密にはSQL Nullではありません。また、これは他のデータベースの動作とは異なります。
そのため、アプリケーションでは、空の NVarChar と 1 個のブランクが含まれる NVarChar を区別できないことに注意してください。また、長さ 0 の NVarChar をデータベースへの挿入前に連結した場合と読み取り後に連結した場合とでは、追加スペース分だけ異なります。この矛盾をなくすには、式で NVarChar を使用する前に末尾スペースを切り捨てることです。RDM L内の空の NVarChar と、データベースから読み取った 1 個のスペースが含まれる NVarChar rを比較する場合、比較において末尾スペースは意味を持たないため、等しいものと判断されます。末尾スペースが意味を持つのは、連結などの式内のみです。
プラットフォームについて
- プラットフォーム別の考慮事項については、「1.1.1 フィールド・タイプについて」を参照をしてください。
ヒントとテクニック
- 実行時に複数言語サポートが不必要な場合は、AlphaフィールドもしくはStringフィールドを使用してください。