1.1.17 CLOB
CLOBは最大長 が定義されていない可変長の文字フィールドです。
CLOBを使ってデータベースへのファイルの保存やファイルの取得ができ、ファイルの表示/編集などが可能になります。 RDMLやRDMLXでは、CLOBフィールドはファイル名として処理されます。
一般的な事柄については、「フィー ルド・タイプについて」を参照してください。
フィールド定義の規則
CLOBフィールドをリポジトリに定義するときの規則は以下のとおりです。
長 さ |
長 さ指定は不可です。小数はありません。 |
有 効なキーボード・シフト |
ブ ランク、O、E、J、ま たはW |
許 容される属性 |
AB、 ASQN、CS、FE、LC、ND、RA、RL、RLTB、SUNI 注: LCとASQNは必ず定義する必要があります。削除はできません。 |
編 集オプション |
不 可 |
デ フォルト |
*SQLNULL。 デフォルトでASQNが有効になります。 |
フィールド定義の注意事項
· CLOB の作業フィールド・タイプはありません。
使用規則
区 画タイプ |
|
ファ イル |
CLOB はRDMLXファイルでのみ使用することができます。CLOBフィールドは実フィールド として使用することができます。CLOBはキー・フィールドとして使用してはいけません。 |
論 理ビュー |
CLOB はキー・フィールドとして使用してはいけません。 |
仮 想フィールド |
適 用不可 |
事 前結合フィールド |
適 用不可 |
RDML コマンド |
BLOB またはCLOBフィールドを使用する場合、そのフィールドにはファイル名が含まれていま す。オブジェクトの実データではないので注意してください。RDMLやRDMLXでは、LANSA LOBフィールドはファイル名として処理されます。 |
組 み込み関数 |
CLOB を組み込み関数で使用する場合、CLOBは独自のタイプに分類されるので数値または英数 字の引数には無効です。 |
特 殊値 |
*SQLNULL、 *NAVAIL、*REMEMBERED_VALUE、*EMPTY |
変 換 |
CLOB はファイル・ポインターとして扱われます。数値や日付/時間フィールド・タイプへの変換 はサポートされていません。「フィー ルド・タイプ変換」を参照してください。 |
使用に関する注意事項
· CLOB の作業フィールド・タイプはありません。
· CLOB をキーの一部(例:アクセス経路へのキーなど)とすることはできません。
· CLOB データの表示または印刷はできません。
· CLOB フィールドをリストに追加する場合、そのフィールドにはファイル名が含まれています。オブジェクトの実データではないので注意してください。
· 条 件に従ってSQLのWHERE句を生成する場合、このフィールド・タイプは*NULLまたは*SQLNULLとしか比較することはできません。他との比較 はすべて拒否されます。
· CLOB タイプのフィールドのデフォルト・プロパティは、.Valueで はなく、.FileNameで す。これは、このフィールドの「値」を変更することは、実際にそのデフォルト・プロパ ティつまりファイル名プロパティが変更されるということを明確に示しています。
· CLOB フィールドは特定の制限に従います。
· こ のフィールドをSELECT_SQLコマンド内で使用することはできません。
· こ のフィールドを条件で使用することはできません。ただし、*NULLまたは*SQLNULLとの比較は除きます。
· 一 部またはすべてのDBMSへの変更が記録されない場合があります。したがって、ロールバックの効果がない場合もあります。
· LC 属性は常に有効です。無効にはできません。これは最初はファイル名に影響しますが、最終的にはCLOBの内容にも影響します。
· ASQN 属性は常に有効です。無効にはできません。
· BLOB およびCLOB データをデータベースから読み取ると、ディレクトリ構造内のLPTH=ディレクトリにファイルが自動的に作成されます(詳細については、「標準 X_RUNパラメー タ」を参照してください)。
プラットフォームについて
· System iでCLOBフィールドを読み取った場合、IFS上に作成されるファイルのCCSIDは、データベース・テーブルのネイティブのCLOBまたは DBCLOB列と同じになります。データに対してデータ変換は実行されません。これには、CCSIDが1200または13488のDBCLOBが含まれま す。
· プ ラットフォーム別の考慮事項については、「フィールド・タイプについて」を 参照してく ださい。
ヒントとテクニック
· BLOB とCLOBフィールドを使用する場合に、それらのフィールドを他のフィールドとは別のファイルに配置してメイン・ファイルと同じキーを使用する設計をお勧 めします。これによりプログラマは、BLOBやCLOBデータのアクセスに別々のI/O操作を行わなければならなくなり、このデータの無差別な使用による データベース・パフォーマンス上の影響を軽減することができます。またこれは最も移植性の高い設計で、BLOB以外またはCLOB以外のデータに常に迅速 にアクセスできるようになります。
· 読 み取り時に作成されるLOBディレクトリがLANSAセッションの終了時に削除されないことがあります。特別なプロセス*LOBCLNUPを時々実行する ことで、LOBディレクトリ構造をクリーンアップできます。このプロセスは、他のユーザーが作成したファイルを削除する十分な権限を持つユーザーが実行す る必要があります。例えばIBM i では次のコマンドを使用します。: LANSA REQUEST(X_RUN) X_RUNADPRM('PROC=*LOBCLNUP')
さらに、次のトピックも参照してください。