db2 存储过程迁移方法
2014-10-15 17:58
232 查看
大家在迁移数据库时,存储过程一般也要迁移过去,但一般有两个问题:
1. 很多存储过程有先后关系(存储过程调用存储过程),如果存储过程数量少,还能手动操作,如果量大,那真是要疯了。
2. 存储过程过大(行数过多),导致异常
这边有个方法,或许可以解决这个问题。
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文件,这样不容易出错。
1. 命令行下进入到G:/PROCUDURE
2. 连接到要导入的db: connect to ilsdb user xxx用户 using xxx密码
3. db2 -td@ -vf procudure.del.001.lob
ok,顺便看看log,有没有报错。有报错,在执行一次(虽然是按照创建时间排序的,但不能保证有人后期修改过父存储过程,导致创建时间不对)。
导入过程见图:
打开后输入以下命令
1. 很多存储过程有先后关系(存储过程调用存储过程),如果存储过程数量少,还能手动操作,如果量大,那真是要疯了。
2. 存储过程过大(行数过多),导致异常
这边有个方法,或许可以解决这个问题。
一. 导出存储过程
EXPORT TO G:/PROCUDURE/procudure.del OF del MODIFIED BY LOBSINFILESELECT '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文件,这样不容易出错。
二. 导入存储过程
下一步当然是在其他db下面导入存储过程啦:1. 命令行下进入到G:/PROCUDURE
2. 连接到要导入的db: connect to ilsdb user xxx用户 using xxx密码
3. db2 -td@ -vf procudure.del.001.lob
ok,顺便看看log,有没有报错。有报错,在执行一次(虽然是按照创建时间排序的,但不能保证有人后期修改过父存储过程,导致创建时间不对)。
导入过程见图:
打开后输入以下命令
相关文章推荐
- db2 存储过程迁移方法
- Sybase 存储过程迁移至DB2错误集锦——不断更新
- 导出所有DB2存储过程的四种方法
- [DB2]存储过程经常使用方法
- DB2 存储过程中游标循环的嵌套使用方法。
- 导出所有DB2存储过程的四种方法
- DB2 数据库中得到存储过程创建语句的三种方法
- 存储过程和函数无法迁移的解决方法
- DB2 存储过程开发最佳实践
- 在.net中调用存储过程的另一种方法。cmd.commandtype为commandtypetext
- 将数据库的存储过程及其参数导出来的方法
- 在C#.NET中怎样调用db2存储过程
- VC调用存储过程的通用方法(ORACLE篇)
- SQL存储过程事务和优化方法(包括查询方式语句结合)
- .NET中统一的存储过程调用方法(收藏)
- db2数据复制、迁移方法
- DB2 多游标存储过程测试
- 存储过程调试过程中DATETIME参数的输入故障解决方法
- 存储过程调试过程中DATETIME参数的输入故障解决方法
- SQL SERVER 2000 存储过程不支持数组的解决方法!