博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
db2 存储过程迁移方法
阅读量:6950 次
发布时间:2019-06-27

本文共 935 字,大约阅读时间需要 3 分钟。

    大家在迁移数据库时,存储过程一般也要迁移过去,但一般有两个问题:

1. 非常多存储过程有先后关系(存储过程调用存储过程),假设存储过程数量少,还能手动操作。假设量大,那真是要疯了。

2. 存储过程过大(行数过多),导致异常

这边有个方法,也许能够解决问题。

一. 导出存储过程

EXPORT TO G:/PROCUDURE/procudure.del OF 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 WHERE PROCSCHEMA  = 'ILS' ORDER BY create_time ;

运行以上导出语句,则是把schema为ils以下的存储过程导出为文件,由于有ORDER BY create_time。所以导出的顺序也是依照原有存储过程的顺序建立的。

运行完了,应该在G:/PROCUDURE看到两个文件

1. procudure.del

2. procudure.del.001.lob

如图:

会出现procudure.del.001.lob这个文件,由于我这边有存储过程太大(使用MODIFIED BY LOBSINFILE)。所以导出为lob文件,这样不easy出错。

二. 导入存储过程

下一步当然是在其它db以下导入存储过程啦:

1. 命令行下进入到G:/PROCUDURE

2. 连接到要导入的db:  connect to ilsdb user xxx用户 using  xxxpassword

3. db2 -td@ -vf procudure.del.001.lob

ok。顺便看看log。有没有报错。

有报错,在运行一次(尽管是依照创建时间排序的,但不能保证有人后期改动过父存储过程,导致创建时间不正确)。

导入过程见图:

打开后输入下面命令

 

 

你可能感兴趣的文章
install mysql with source code
查看>>
前端资料收集地址
查看>>
mysql优化--避免数据类型的隐式转换
查看>>
ubuntu 下mysql 不显示当前的数据库名解决方法
查看>>
optimize 回收表空间的一些说明
查看>>
MySQL中索引的长度的限制
查看>>
MySQL编译安装时常见错误分析
查看>>
我的友情链接
查看>>
shell脚本使用getopts自定义传入参数选项
查看>>
Azure实践之通过automation管理资产
查看>>
.net面试中常被面试官问到的问题
查看>>
Echarts-地图扩展-标准geoJson格式扩展地图-例子
查看>>
namenode双机热备之操作实践
查看>>
ci源码解析之CodeIgniter.php
查看>>
silverlight---游戏中的人工智能之追逐与闪躲
查看>>
MongoDB lsm降低 disk lantency
查看>>
NDB的备份和恢复---测试start backup和ndb_restore
查看>>
我的友情链接
查看>>
JQuery获取input type="text"中的value属性的值的方法
查看>>
Spring Mvc前台访问报404
查看>>