如何列出Informix中的所有存储过程?

7

我正在寻找一种方法来列出在Informix上运行的数据库中所有存储过程。

在“informix”.*数据库中是否有一个表可以列出存储过程以及它们的详细信息?

4个回答

17

有的,它叫做sysprocedures。尝试这个来查看所有内容:

select * from sysprocedures

要获取更详细的信息,请阅读有关sysproceduressysprocbodysysproccolumns的文章。


4
从下面的查询中获取存储过程的procid: select sysprocedures.procname,sysprocedures.procid from sysprocedures 并在下面的查询中提供procid以查看整个存储过程: select data from sysprocbody where procid = @procid and datakey = 'T' order by seqno

太好了,谢谢。你知道如何执行这个过程吗? - Foxhound
回答我上面的评论: 调用<procname>() - Foxhound
上帝保佑你,我一整天都在找它。 - Gabz

2
select sysprocedures.procname from sysprocedures;

3
你刚才是不是利用我在回答中提供的信息来回答自己的问题了? - Adriano Carneiro
1
鼠标悬停在时间戳上;他的回答是第一个。 - Jeff Atwood
1
@Adrian - 我在谷歌上找到了答案并在看到你的回复之前发布了我的回复,但是Jeff,我认为Adrian比我早一分钟发了回复。 - CheeseConQueso

1
您可以使用dbschema获取存储过程(文本)的内容: dbschema -d -f all 或者 dbschema -d -f
存储过程的文本也在sysprocbody表中,"where datakey='T'" 因此: select data from sysprocbody where procid in (select procid from sysprocedures where procname='') and datakey='T' order by seqno; -- 注意,在旧版本的Informix中,这会提示需要在所选列列表中包含seqno。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接