如何在 Firebird 上提取视图 DDL

How to extract view DDL on Firebird

我需要从我的数据库中获取用于视图的 DLL 或 SELECT 语句。我怎样才能得到这个?

我的火鸟版本:2.5

获取视图的 select 语句的快捷方式是使用:

select rdb$view_source
from rdb$relations
where rdb$relation_name = '<your view name>'

注意名称区分大小写,可以不加引号的对象名在这里必须大写。

rdb$view_source 列仅包含 create view 语句的 as 子句之后的部分(select,也许 with check option条款)。

请注意,某些应用程序供应商有时会删除视图源,在这种情况下,除了反编译 rdb$view_blr 中的二进制编译形式外,没有真正的方法可以取回原始 DDL。我没有这方面的经验。

Flame Robin之类的工具也提供了获取DDL的方法:展开视图选项卡,右击视图,select属性,然后选项卡DDL。请注意,这与上面的限制相同:如果视图源被删除,它将不可用。

在 ISQL 中您可以使用:

show view <your view name>;

同样:同样的限制适用。

您还可以使用 ISQL 提取整个数据库的完整 DDL

isql -ex -u sysdba -p password localhost:<path to your db>

但同样,如果视图源已被删除,这对您没有帮助。