2017-01-30 60 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命令解決了我的問題。謝謝! –