用于提取存储过程的 DB2 SQL 代码

发布于 2024-07-23 12:08:17 字数 382 浏览 7 评论 0原文

我和我的同事在托管 DB2/z 数据库(版本 8.1)上有数百个 SQL 存储过程。 我们没有管理员权限,我们通过 QMF 屏幕访问数据库。 下载是通过 3270 终端会话使用 TSO FT 命令完成的。

是否有一种简单/有效的方法来提取所有存储过程的定义/文本?

我想每周进行一次转储,并将其保存在 SVN 或其他版本控制系统中。

任何建议将不胜感激。

谢谢
Stephen


更新 - 2009 年 7 月 9 日

非常感谢您的建议,但它们似乎对我们的特定配置没有帮助。 我将返回我们的供应商并向他们询问更多信息。 当我进一步了解时会更新。

斯蒂芬

My colleagues and I have several hundred SQL stored procedures sitting on a hosted DB2/z database (version 8.1). We have no administrator rights and our access to the database is via QMF screens. Downloads are done through the 3270 terminal session with the TSO FT command.

Is there a simple/efficient way to extract the definitions/text of all of our stored procedures?

I'll like to do a weekly dump that we keep on-site in SVN or some other revision control system.

Any suggestions would be greatly appreciated.

Thanks
Stephen


Update -- 9 July 2009

Many thanks for the suggestions, but they don't seem to help in our particular config. I'll go back to our vendor and ask they for more info. Will update when I learn anything further.

Stephen

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

笑红尘 2024-07-30 12:08:17

您可以通过执行以下操作来获取存储过程文本。

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES;

或者,您可以选择通过执行以下操作来仅检索架构中的 SP:

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES WHERE SPECIFIC_SCHEMA = 'MYSCHEMA';

如果您决定通过使用 where 子句来限制结果,请注意,这是一种情况 -敏感,您只需在 CAPS 中指定条件。

You can get the stored procedure text by doing a

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES;

Alternately, you can choose to retrieve only the SPs in your schema by doing a:

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES WHERE SPECIFIC_SCHEMA = 'MYSCHEMA';

If you decide to limit the results by having a where clause, please note that it is case-sensitive and you need to specify the criteria in CAPS only.

够运 2024-07-30 12:08:17

在 DB2 z/OS 上,您需要查看系统目录表,主要是 SYSIBM.SYSROUTINES、SYSIBM.SYSROUTINES_OPTS 和 SYSIBM.SYSROUTINES_SRC

On DB2 z/OS, you will want to look in the system catalog tables, primarily SYSIBM.SYSROUTINES, SYSIBM.SYSROUTINES_OPTS, and SYSIBM.SYSROUTINES_SRC

与酒说心事 2024-07-30 12:08:17

如果他们对该数据库只有最终用户权限,这有什么关系吗?

从 v9.5 的信息中心来看,需要以下权限:

系统目录表上的 SELECT 权限。

在某些情况下,例如生成表空间容器 DDL(调用 API sqlbotcq、sqlbftcq 和 sqlbctcq),您将需要以下之一:

* sysadm
* sysctrl
* sysmaint
* dbadm

If they have only end-user right on that db, does it matter?

from info center for v9.5 the following privilege is required:

SELECT privilege on the system catalog tables.

In some cases, such as generating table space container DDL (which calls the APIs sqlbotcq, sqlbftcq, and sqlbctcq), you will require one of the following:

* sysadm
* sysctrl
* sysmaint
* dbadm
以往的大感动 2024-07-30 12:08:17

我认为 db2look 应该能够为您获取 DDL。

根据文档,您唯一需要的是系统目录表上的 SELECT 权限。

我对 OS/390 不太熟悉,所以不确定如何在该平台上运行 db2look。 希望您的 DBA 可以帮助您。

I think db2look should be able to get the DDL for you.

According to the docs the only thing you need is SELECT privilege on the system catalog tables.

I'm not too familiar with OS/390 anymore so not sure how you run db2look on that platform. Hopefully your DBA can help you out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文