如何在 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>
但同样,如果视图源已被删除,这对您没有帮助。
我需要从我的数据库中获取用于视图的 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>
但同样,如果视图源已被删除,这对您没有帮助。