为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:麒麟
【CPU】:
【问题描述】*:我现在有一张很大的视图 要看其中的ddl 如何把根视图以及下面的子视图的ddl一次性导出来
试一下下面这个SQL,在其中设置你这个大视图所在的模式名和视图名,然后结果里会有该视图极其引用的子视图的脚本,可以copy出来查看
SELECT SCH1.NAME AS SCHEMA_NAME,OBJ1.NAME AS OBJECT_NAME,OBJ1.SUBTYPE$ AS OBJECT_TYPE,TXT1.TXT AS SOURCE
,SCH2.NAME AS REFED_SCHEMA_NAME,OBJ2.NAME AS REFED_OBJECT_NAME,OBJ2.SUBTYPE$ AS REFED_OBJECT_TYPE,TXT2.TXT AS REGED_OBJECT_SOURCE
FROM SYSDEPENDENCIES DEP
JOIN SYSOBJECTS OBJ1 ON OBJ1.ID = DEP.ID
JOIN SYSOBJECTS OBJ2 ON OBJ2.ID = DEP.REFED_ID
JOIN SYSOBJECTS SCH1 ON SCH1.ID = OBJ1.SCHID
JOIN SYSOBJECTS SCH2 ON SCH2.ID = OBJ2.SCHID
LEFT JOIN SYSTEXTS TXT1 ON TXT1.ID = OBJ1.ID AND TXT1.SEQNO = 0
LEFT JOIN SYSTEXTS TXT2 ON TXT2.ID = OBJ2.ID AND TXT2.SEQNO = 0
START WITH SCH1.NAME = '模式名' --输入要查询的视图所在模式名
AND OBJ1.NAME = '视图名' --输入要查询的视图名
CONNECT BY PRIOR DEP.REFED_ID = DEP.ID
ORDER SIBLINGS BY OBJ1.NAME

您指的是视图定义套视图的情况吧?参考下这个,同时增加判断视图对象是否存在于视图定义的条件应该就可以。https://eco.dameng.com/community/article/2b3ecba5b8733516286c4f210940b8de