【问题标题】:How to extract Stored Procedure body in Teradata如何在 Teradata 中提取存储过程主体
【发布时间】:2013-06-14 20:37:00
【问题描述】:

我正在尝试通过查询系统表来提取存储过程 DDL。
如果我运行以下查询

select * from dbc.tvm where TableKind = 'P'

RequestTextCreateText 两个字段都包含 NULL。 除了使用 SHOW PROCEDURE 之外,还有什么方法可以查询存储过程主体?

谢谢。

【问题讨论】:

    标签: procedure ddl teradata system-tables


    【解决方案1】:

    存储过程的 DDL (SPL) 未存储在数据字典表中。如果您没有将 DDL 保留在存储库中以进行版本控制,则需要在 BTEQ 脚本中编写 SHOW PROCEDURE 命令并将它们导出到平面文件中。如果您对数据字典的查询很有创意,则可以动态生成此 BTEQ 脚本。

    【讨论】:

    • Rob,非常感谢您的回答。现在,程序的情况很清楚了。看起来触发器的组织方式有点不同,因为 DBC.triggersTbl 系统表的 CreateText 列包含 DDL。
    • @Rob 但定义实际保存在哪里?
    • 它存储在“SP”表的特殊行中。尝试对 SHOW PROCEDURE 命令执行 EXPLAIN。
    猜你喜欢
    • 1970-01-01
    • 2018-08-29
    • 2018-09-05
    • 1970-01-01
    • 2020-06-04
    • 2020-09-25
    • 2019-07-09
    • 2014-06-17
    • 2020-02-23
    相关资源
    最近更新 更多