2013-06-18 44 views
3

我試圖通過查詢系統表來提取存儲過程DDL。
如果我運行從dbc.tvm以下查詢如何提取Teradata中的存儲過程主體

選擇*其中TableKind = 'P'

兩個領域RequestTextCreateText包含NULL。 除了使用SHOW PROCEDURE之外,還有什麼方法可以查詢存儲過程體嗎?

謝謝。

回答

2

存儲過程的DDL(SPL)未存儲在數據字典表中。如果您不將DDL保留在版本控制的存儲庫中,則需要在BTEQ腳本中編寫SHOW PROCEDURE命令的腳本,並將它們導出到平面文件。如果您對數據字典的查詢具有創造性,則可以動態生成此BTEQ腳本。

+0

Rob,非常感謝您的回答。現在程序的情況很明顯。它看起來像觸發器組織有點不同,因爲DBC.triggersTbl系統表的CreateText列包含DDL。 – MaterialGirl

+0

@Rob但實際上保存的定義在哪裏? – Ali

+0

它存儲在「SP」表的特殊行中。嘗試在SHOW PROCEDURE命令上執行EXPLAIN。 –

相關問題