値を DATALINK 列に割り当てると、値のリンケージ属性が指定されていないか、 あるいはその列に NO LINK CONTROL が定義されていない限り、 ファイルへのリンクが確立されます。 リンクされている値がその列にすでにある場合、 そのファイルへのリンクは解除されます。 リンクされている値がすでにある場合に、ヌル値を割り当てることによっても、 その元の値に関連付けられているファイルへのリンクを解除することができます。
すでに列にあるデータの位置と同じ位置をアプリケーションが指定している場合、 そのリンクが保存されます。 このようになる理由には、次の 2 つがあります。
DATALINK 値は、以下のいずれかの方法で列に割り当てることができます。
値を DATALINK 列に割り当てる場合、以下のエラー条件では SQLSTATE 428D1 が戻されます。
URL パラメーターまたは関数結果のサイズは、入力または出力の両方で同じであること、 また DATALINK 列の長さによって束縛されるということに注意してください。 ただし、戻される URL 値にアクセス・トークンが付け加えられている場合もあります。 このことが起こりうる状態では、 アクセス・トークンと、DATALINK 列の長さのための十分の記憶スペースが出力位置になければなりません。 したがって、 完全に展開された書式の注釈と URL (入力で提供されるすべてのデフォルト URL 方式またはデフォルト・ホスト名を含む) の実際の長さには、 出力記憶スペースを合わせるための制限が加えられます。 制限された長さを超えると、このエラーが生じます。
割り当てによりリンクの作成も行う場合、 以下のエラーが発生する場合があります。
ほかのデータベースへのリンクでも、このエラーは発生することに注意してください。
さらに、割り当てにより既存のリンクを除去する場合、 以下のエラーが発生する場合があります。
DATALINK 値は以下のいずれかの方法でデータベースから検索することができます。
通常、検索時にファイル・サーバーへのアクセスは試みられないことに注意してください。 17 そのため、それ以降にファイル・システム・コマンドに使ってファイル・サーバーにアクセスを試みても、 失敗する可能性があります。
DATALINK を検索する場合、データベース・サーバーでのファイル・サーバーの登録が検査され、 そのファイル・サーバーがまだそのデータベース・サーバーに登録されていることが確認されます (SQLSTATE 55022)。 さらに、DATALINK 値を検索する場合に警告が戻される場合がありますが、 それはその表が調整保留状態または調整不能状態のためです (SQLSTATE 01627)。