2017-03-03 64 views
0

我正在将MaxDB数据库迁移到DB2。我需要重新创建所有视图,但其定义包含对其他视图的引用并具有相同的创建日期和时间,所以我无法按正确的顺序创建它们。DB2等效于CREATE FORCE VIEW

DB2是否支持CREATE FORCE VIEW语句?

如何以正确的顺序重新创建视图(无需创建SQL解析器 - 因为我只是从MAXDB中的数据字典中查看视图的字符串定义)?

SELECT用于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

回答

3

你不表示你正在使用的DB2平台。 DB2 for LUW具有database configuration parameter auto_reval,当设置为deferred(默认值)或deferred_force时,允许您以任何顺序创建依赖对象。使用deferred_force生效的对象(包括视图)在创建时无法验证,因为缺少依赖关系将被创建为“有错误”,并在SQL语句中首次使用它们时被重新验证。

通过调用system stored procedure SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()创建它们之后,您还可以显式重新验证所有无效对象。