2017-03-03 1 views
0

Je suis en train de migrer la base de données MaxDB vers DB2. J'ai besoin de recréer toutes les vues, mais leurs définitions contiennent des références à d'autres vues et ont la même date et heure de création, donc je suis incapable de les créer dans le bon ordre.DB2 équivalent pour CREATE FORCE VIEW

Est-ce que le support de DB2 en quelque sorte la déclaration CREATE FORCE VIEW?

Comment puis-je recréer les vues dans l'ordre correct (sans créer analyseur SQL - parce que je viens de définir Chaîne de vues à partir des données Dictionnaire de MAXDB)?

SELECT pour MaxDB:

select vd.*, t.createdate, t.createtime from viewdefs vd 
join tables t on vd.viewname = t.tablename and vd.owner = t.owner 
order by t.createdate, t.createtime 

MaxDB Data Dictionary

Répondre

3

Vous n'indique pas quelle plate-forme DB2 que vous utilisez. DB2 pour LUW a le database configuration parameter auto_reval, qui, lorsqu'il est défini sur deferred (par défaut) ou deferred_force, vous permet de créer des objets dépendants dans n'importe quel ordre. Avec deferred_force dans les objets d'effet (y compris les vues) qui ne peuvent pas être validés au moment de la création en raison de dépendances manquantes seront créés "avec erreur" et revalidés lors de leur première utilisation dans une instruction SQL.

Vous pouvez également revalider explicitement tous les objets non valides après les avoir créés en appelant le system stored procedure SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS().