2009-06-11 77 views
4

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

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

我想每周做一次转储,我们现场保存在SVN或其他版本控制系统中。

任何建议将不胜感激。

感谢
斯蒂芬


更新 - 2009年7月9日

非常感谢您的建议,但他们似乎并不在我们的特殊配置,以帮助。我会回到我们的供应商,并要求他们提供更多信息。当我进一步学习时会更新。

斯蒂芬

回答

0

我觉得应该db2look能够得到的DDL为您服务。

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

我不再太熟悉OS/390,所以不知道你如何在该平台上运行db2look。希望你的DBA能帮助你。

4

在DB2 z/OS上,你会想在系统目录表看,主要SYSIBM.SYSROUTINES,SYSIBM.SYSROUTINES_OPTS和SYSIBM.SYSROUTINES_SRC

1

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

从信息中心

为V9.5需要以下特权:

在系统目录表的SELECT权限。

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

* sysadm 
* sysctrl 
* sysmaint 
* dbadm 
6

你可以得到存储过程文本通过做

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES; 

或者,你可以选择做一个只提取了SP的架构中的:

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

如果您决定通过使用where子句来限制结果,请注意它是区分大小写,您只需在CAPS中指定标准。