2017-01-30 25 views
1

我需要从我的数据库中获取视图上使用的DLL或SELECT语句。我怎样才能得到这个?如何提取Firebird上的视图DDL

我火鸟版本:2.5

+0

大多数数据库管理工具(即Firebird的Flamerobin)都有对象的“查看源”选项 - 使用它。或者,您可以使用Firebird附带的'isql'命令行工具来提取元数据(请参阅手册中的精确语法)。 – ain

回答

0

的快速和肮脏的方式来获得该视图的SELECT语句的使用方法:

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

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

rdb$view_source列只包含as -clause的create view语句来的之后的部分(所述选择,也许with check option子句)。

请注意,某些应用程序供应商有时会删除查看源,在这种情况下,没有真正的方法来取回原始DDL,除非通过反编译rdb$view_blr中的二进制编译表单。我没有这方面的经验。

像Flame Robin这样的工具还提供了获取DDL的方法:展开视图选项卡,右键单击视图,选择属性,然后选择DDL。请注意,这具有与上述相同的限制:如果查看源被删除,则它将不可用。

在ISQL你可以使用:

show view <your view name>; 

还是那句话:同样的限制适用。

您还可以使用ISQL与

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

但再次提取整个数据库的完整DDL,如果查看源代码已被删除,这不会帮助你。

+0

isql命令解决了我的问题。谢谢! –