データ・リンクの割り当て

値をデータ・リンク列に割り当てると、値のリンケージ属性が空であるか、列が NO LINK CONTROL で定義されているのではない限り、ファイルへのリンクが確立します。リンクされた値が既に列に存在する場合は、そのファイルはリンク解除されます。 また、リンクされた値が既に存在する場合に NULL 値を割り当てても、古い値に関連したファイルはリンク解除されます。

列に既に存在するものと同じデータ位置を、アプリケーションが与えると、そのリンクは保存されます。 このことが生じる理由は 2 つあります。

  • コメントが変更された。
  • 表がリンク保留状態にある場合は、列にあるものと同じリンク属性を与えることによって、表のリンクを復元することができます。

データ・リンク値は、DLVALUE スカラー関数を使用することによって、列に割り当てることができます。 DLVALUE スカラー関数は、後で列に割り当てることができる新しいデータ・リンク値を作成します。 値がコメントしか含んでいないか、URL がまったく同じではない限り、割り当ての行動によってファイルへリンクします。

値をデータ・リンク列へ割り当てる際に、次のエラー状態が起こる可能性があります。

  • データ・ロケーション (URL) 形式が無効。
  • ファイル・サーバーがこのデータベースに登録されていない。
  • 無効なリンク・タイプが指定された。
  • コメントまたは URL の長さが無効。

    URL パラメーターまたは関数結果のサイズは、入力と出力の両方で同じであり、データ・リンク列の長さに制限されることに注意してください。 ただし、場合によっては、戻される URL 値にアクセス・トークンが付加されることがあります。 このような可能性がある状態では、出力の場所ではアクセス・トークン用に十分な記憶域とデータ・リンク列に十分な長さが必要になります。 したがって、入力で用意される完全に拡張された形式でのコメントと URL の実際の長さを、出力の記憶域に適応するように制限する必要があります。 制限された長さを超えた場合には、このエラーが起こります。

割り当てでリンクも作成する場合は、以下のエラーが生じる可能性があります。

  • 現在、ファイル・サーバーが使用不能。
  • ファイルが存在しない。
  • 参照したファイルがリンク用にアクセスできない。
  • ファイルが既に別の列へリンクされている。

    このエラーは、異なるリレーショナル・データベースへのリンクの場合でも生じることに注意してください。

さらに、割り当てで既存のリンクを取り除く場合には、以下のエラーが生じる可能性があります。

  • 現在、ファイル・サーバーが使用不能。
  • 参照保全制御を伴うファイルが、DB2® UDB データ・リンク・ファイル・マネ ージャーに従った正しい状態にない。

データ・リンク値は、スカラー関数 (DLLINKTYPE および DLURLPATH など) を使用することにより、データベースから検索することができます。 その後で、これらのスカラー関数の結果を変数に割り当てることができます。

通常は、検索時にファイル・サーバーをアクセスすることは行われないということに注意してください。 1したがって、後でファイル・システム・コマンドを使用してファイル・サーバーにアクセスしようとすると、失敗する可能性があります。

表はリンク保留状態にあるため、データ・リンク値を検索すると警告が戻されることがあります。

1 パスに関連したプレフィックス名を決めるためには、ファイル・サーバーへのアクセスが必要になることがあります。 これは、ファイル・サーバーのマウント・ポイントを移動するとファイル・サーバー側で変更することができます。 サーバーのファイルを最初にアクセスすると、必要とする値をファイル・サーバーから検索し、そのファイル・サーバーのデータ・リンク値を後で検索するために、データベース・サーバーでキャッシュに入れます。ファイル・サーバーにアクセスできない場合は、 エラーが戻されます。