フォワード・エンジニアリング

変更をフォワード・エンジニアリングするとき、他のオブジェクトから派生したオブジェクト (ビュー、マテリアライズ照会表、別名など) の DDL を必ず確認して、正しい従属オブジェクトが解決されるようにしてください。
徴候
DB2® は、一部の派生オブジェクトの CREATE ステートメントを、厳密に指定どおりにカタログに保存します。 これらのステートメントの作成者がスキーマ名を指定しなかった場合、現行のログインが指定されたと想定します。 フォワード・エンジニアリング・プロセス中と現行のログインが異なる場合には CREATE ステートメントは失敗する場合があります。
問題解決
この問題を解決するには、オブジェクトの変更時に同じ作成者 ID を使用するか、DDL で従属オブジェクトを完全に指定するか、またはコマンドの前に構文 SET CURRENT SCHEMA を追加します。

例えば、CREATE VIEW MYSCHEMA.VIEW AS SELECT * FROM MYTABLE; のような CREATE VIEW コマンドを生成し、MYTABLE が実際には DB2 という名前のスキーマに属する場合、このコマンドが配置されるときに、DB2 は現行のログイン名の下位で MYTABLE を検索します。name. その時 loginname.MYTABLE が定義されていないというエラーが出る場合があります。SET CURRENT SCHEMA=DB2 ステートメントを CREATE VIEW MYSCHEMA.VIEW AS SELECT * FROM MYTABLE 構文の前に追加した場合、参照されるすべてのオブジェクトは、正しく解決されます。

IBM® Data Studio が派生オブジェクトの CREATE ステートメントの正しい順序を計算する際、この派生オブジェクトに、完全修飾スキーマ名のない他の派生オブジェクトの名前が含まれていると、IBM Data Studio がこれらのステートメントを誤った順序で配置することがあります。 この問題を修正するには、必要に応じて以下の操作を実行してください。
  • 変更コマンドを生成するために使用されるログインが、データベース・オブジェクトを作成するために使用されたログインと同じになるようにします。
  • SQL および XQuery エディター で、生成されたコマンドを開き、ステートメントを正しい順序で配置します。

フィードバック