• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

DB2导出存储过程的DDL语句的方法

mysql 搞代码 4年前 (2022-01-09) 12次浏览 已收录 0个评论

日常DBA的工作就是获取SP的代码,以便于分析或者移植到别的环境,如何快速获取SP的DDL呢,总结了下,DB2在获取SP的DDL语提供的方

日常DBA的工作就是获取SP的代码,以便于分析或者移植到别的环境,如何快速获取SP的DDL呢,总结了下,DB2在获取SP的DDL语提供的方法还是比较多,可以供参考:

1 select routinename,text from sysibm.sysroutines;

上面是通过数据字典表查询获取,与其等效的系统视图查询获取方法
DB2 SELECT CHAR(ROUTINESCHEMA,20), CHAR(ROUTINENAME,20), TEXT FROM SYSCAT.ROUTINES >
此方法的缺陷是当text>32767时,导出的该条存储过程是不完整的。

2 GET ROUTINE
1)获取所有存储过程的名称:
DB2 SELECT本文来源gaodai#ma#com搞@代~码^网+ CHAR(ROUTINESCHEMA,20) AS SCHEMA, CHAR(ROUTINENAME,20) AS NAME FROM SYSCAT.ROUTINES WHERE SUBSTR(VARCHAR(TEXT),1,16) = ‘CREATE PROCEDURE’ >
2)根据输出文件中存储过程的名称,分别对每个存储过程执行如下操作,以便将完整的创建语句输出到指定文件中:
DB2 GET ROUTINE INTO FROM PROCEDURE .

当然上面方法的好处就是均可以指定具体SP名称,对单独的SP进行DDL的结构导出。

3 DB2LOOK 命令的 -e 选项中增加了对存储过程的创建语句的提取
db2look -d -cor -e -o

4 使用export:
db2 “EXPORT TO procudure.del OF del lobs to sp.del MODIFIED BY LOBSINFILE SELECT ‘SET CURRENT SCHEMA ‘||rtrim(procschema)||’@’||chr(10)||’SET CURRENT PATH = SYSIBM,SYSFUN,SYSPROC,’||rtrim(procschema)||’ @’||chr(10)||text||chr(10)||’@’||chr(10) FROM syscat.procedures ORDER BY create_time ; “

注意必须加lobs to选项,否则大的存储过程定义只能导出一部分

上面的第三和第四种方法无法指定SP名称,基本是全库的SP的所有结构,所以可以根据工作中的需求选择合适快捷的方法,总而言之,DB2提供了足够多的方法便利了DBA在日常工作需求。

DB2数据库性能调整和优化(第1、2版) PDF

DB2数据库性能优化介绍

DB2 9.7 for Linux 5.4安装详细步骤

本文永久更新链接地址:


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:DB2导出存储过程的DDL语句的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址