7

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

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

我想做一个每周转储,我们在 SVN 或其他一些修订控制系统中保存在现场。

任何建议将不胜感激。

谢谢
斯蒂芬


更新——2009 年 7 月 9 日

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

斯蒂芬

4

4 回答 4

10

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

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES;

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

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

如果您决定使用 where 子句来限制结果,请注意它区分大小写,并且您只需在 CAPS 中指定条件。

于 2009-07-08T10:28:34.407 回答
4

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

于 2009-06-14T06:02:13.170 回答
1

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

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

系统目录表的 SELECT 特权。

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

* sysadm
* sysctrl
* sysmaint
* dbadm
于 2009-06-25T22:44:34.360 回答
0

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

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

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

于 2009-06-11T15:07:56.100 回答