如何列出 Informix 中的所有存储过程?
我正在寻找一种方法来列出在 Informix 上运行的数据库中的所有存储过程。
"informix".*
数据库中是否有一个表列出了存储过程及其详细信息?
I'm looking for a way to list all the stored procedures in my database running on Informix.
Is there a table in the "informix".*
database that lists stored procedures along with detail information about them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
是的,有。它称为
sysprocedures
。尝试查看所有内容:有关可用的详细信息的更多信息,请阅读 系统过程 和 sysprocbody 和 sysproccolumns。
Yes, there is. It's called
sysprocedures
. Try this to see all there's to see:For more information on what detailed information is available, read about sysprocedures and sysprocbody and sysproccolumns.
从下面的查询中获取存储过程的 procid
select sysprocedures.procname,sysprocedures.procid from sysprocedures
并在下面的查询中提供 procid 以查看整个存储过程
select 数据
来自 sysprocbody
其中 procid = @procid
和数据键 = 'T'
按序列号排序
Get the procid of the stored procedure from the below query
select sysprocedures.procname,sysprocedures.procid from sysprocedures
and provide the procid in the below query to view the whole stored procedure
select data
from sysprocbody
where procid = @procid
and datakey = 'T'
order by seqno
您可以使用 dbschema 获取存储过程的内容(文本):
dbschema -d -f 全部
或者
dbschema -d -f
该过程的文本也在 sysprocbody 表中“where datakey='T'”,
因此:
从 sysprocbody 选择数据
其中 procid in (从 sysprocedures 中选择 procid,其中
过程名='')
和数据键='T'
按序列号排序;
-- 请注意,在较旧的 Informix 中,这会抱怨 seqno 必须包含在所选列的列表中。
You can get the contents of the stored procedures (the text) with dbschema:
dbschema -d -f all
or
dbschema -d -f
The text of the procedure is also in the sysprocbody table "where datakey='T'"
so:
select data from sysprocbody
where procid in (select procid from sysprocedures where
procname='')
and datakey='T'
order by seqno;
-- Note that in older Informix, this would complain that seqno had to be included in the list of selected columns.