2

SQL 環境では、特定の状況下で、プロシージャー内のテーブル (またはビュー) A へのすべての参照が実際にはテーブル (またはビュー) B を使用するという要件があります。iSeries では、OVRDBF コマンドを使用してテーブル A への参照をオーバーライドします。テーブル B: OVRDBF FILE(A) TOFILE(B)。SQLでこれに相当するものは何ですか? ありますか?

私の目標は、オーバーライドを知らない手順で終わることです。特定の条件が満たされたときにテーブル B で処理を指示するプロシージャ内に条件付きロジックは必要ありません。ビジョン:

一般的な状況では: プロシージャを呼び出すだけです

特定の代替状況では: OVRDBF と同等の手順を実行してから、手順を呼び出します。

4

2 に答える 2

1

手順を変更できるかどうか Ed が言及しているように:

1) ファイル(A)のエイリアスを作成する

CREATE ALIAS XYZ FOR A

2) A の代わりに XYZ を参照するように手順を変更します。

3) ファイル B を使用する手順を実行する場合

DROP ALIAS XYZ;
CREATE ALIAS XYZ FOR B;
CALL PROCEDURE;
DROP ALIAS XYZ;
CREATE ALIAS XYZ FOR A;

手順を変更できず、テーブル A への同時アクセスについて心配していない場合は、次を使用できます。

RENAME TABLE A TO C;
CREATE ALIAS A FOR B;
CALL PROCEDURE;
DROP ALIAS A;
RENAME TABLE C TO A;
于 2009-02-05T22:24:54.590 に答える
1

どの SQL 環境がどのオプションをサポートしているか不明:

DB2 には CREATE ALIAS ステートメントがあると思います。エイリアス上に SQL を記述します。

別の可能性: ビューに対してクエリを実行します。OVRDBF を実行する場所で、ビューを削除し、目的のテーブルで再構築します。

于 2009-02-04T18:20:02.590 に答える