2016-04-28 13 views
1

既存のテーブルを指す既存のテーブルの別名または同義語を作成できますか?DB2 z/OS - 他の既存のテーブルを指す、既存のテーブルテーブルのテーブルエイリアス/シノニムを作成します。

状況:私は、HibernateとJavaをベースのツールを持っている、と私は同じで(新しいテーブル(SchemaNEW.TableNEW)に古いDBテーブル(SchemaOLD.TableOLD)から、すべてのこの出来事をいくつかの領域を移行する作業に取り組んでDBサーバー)。状況は近いです完了しかし、私は元の場所(SchemaOLD.TableOLD)を指し示すいくつかのレガシーサードパーティのコンポーネントを発見しました。いくつかのビジネス上の制約のため、(他のコンポーネントも移行される代わりに)より高速な代替ソリューションを探すことを余儀なくされています。

私は何とかこれらのレガシーコンポーネントが実際に新しい場所からデータを取得しているときに邪魔されずに実行されますように、DBサーバは、新しいものSchemaNEW.TableNEWSchemaOLD.TableOLD文字列を「解決」するようにする必要があります。 のようにこれを実行する必要がありますが、古いテーブルと新しいテーブルの両方がDBにまだ存在しています

これはどういうことですか? 最適なソリューション、別名、または同義語は何ですか?これら2つの違いは私にとっては少し不明です...

ありがとうございました。

+0

おそらく愚かな答え/質問:なぜ、移行していないのですが、その名前をNEWに変更するとOLDですか? – PSVSupporter

+0

これは次のようになります。 - 私は移行を行いました。今度は私のツールは新しい場所から読み込みます。 - OLDのデータをまだ処理している古いコンポーネントがあります 古いレガシーコンポーネントを変更せずに新しい場所からデータを読み込ませる必要があります。したがって、古い文字列を何らかの形で新しい文字列に「解決」する必要があります。 – Serban

答えて

2

ALIASまたはSYNONYMのいずれかを使用する場合は、ALIASを使用する必要があります。

重要:代わりに同義語の使用エイリアスここSYNONYM Knowledge Centerのページからノートがあります。同義語 はエイリアスに似ていますが、以前のリリース との互換性のためにのみサポートされています。シノニムは、DB2®の将来のリリース では使用できない可能性があります。類義語は、DB2 for z /OS®と、他のDB2ファミリー製品の とでは異なる動作をします。新しいSQL 文を記述するとき、またはポータブル・アプリケーションを作成するときは、シノニムを使用しないでください。

CREATE VIEW SchemaOLD.TableOLD AS 
    SELECT * FROM SchemaNEW.TableNEW 

あなたはまた、「新しい」テーブルの更新から古いユーティリティを防ぐために必要としている場合、あなたが潜在的にそのビューにtriggerを使用してになります:

別のオプションはVIEW可能性があり。

+0

エイリアス対同義語について書いたことを知っていただきありがとうございます。 ビューの提案に関して、 'SchemaOLD.TableOLD'の位置がまだ存在している間に、そのようなことが起こりますか? 'SchemaOLD.TableOLD'と呼ばれるビューとテーブルの両方が同時にDBに存在します... – Serban

+0

それはできません。これは[Documentation](https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/com.ibm.db2z11.doc.sqlref/src/tpc/db2z_sql_createview.dita)からのものです。 _ [ビュー現在のサーバに存在するテーブル、ビュー、エイリアス、または同義語を識別してはいけません...._ 別名の場合も同じです。私はあなたがSchemaOLD.TableOLDテーブルを削除するために何らかのダウンタイムを取らなければならないと思います。 – David

+0

['RENAME'](https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/com.ibm.db2z11.doc.sqlref/src/tpc/db2z_sql_rename.dita)コマンドもあります。古いテーブルの名前を別のものに変更してから、ビューを作成することができます。 'RENAME'は素早く、基本的にはそのテーブルのカタログ情報を更新するだけです。 – bhamby

関連する問題