2017-03-03 67 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()創建它們之後,您還可以顯式重新驗證所有無效對象。