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

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

如图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvendqX2xtc3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

会出现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。有没有报错。

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

导入过程见图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvendqX2xtc3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

打开后输入下面命令

db2 存储过程迁移方法的更多相关文章

  1. db2存储过程迁移

    一.导出存储过程 EXPORT TO D:/PROCUDURE/procudure.del OF del MODIFIED BY LOBSINFILE SELECT 'SET CURRENT SCHE ...

  2. 数据库 SQL Server 到 MySQL 迁移方法总结

    最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 ...

  3. DB2 存储过程创建、系统表

    前段时间做了数据表拆分,进行数据迁移,用到一些SQL命令,语句记录下来 db2look是DB2用于生成数据库DDL语句的一个工具: 命令:db2look -d DBname -a -e -p -i u ...

  4. oracle 表迁移方法 (二) 约束不失效

    DB:11.2.0.3.0 在oracle 表迁移方法 (一)中,只是move了一张普通的表,如果表的字段带有主键约束呢 ? [oracle@db01 ~]$ sqlplus / as sysdba ...

  5. Ubuntu Server搭建svn服务以及迁移方法【转】

    转自:http://www.linuxidc.com/Linux/2013-05/84693.htm Ubuntu Server搭建svn服务以及迁移方法 采用apache+svn,http访问方式. ...

  6. jdbc调用存储过程的方法

    ----------------------------jdbc调用存储过程的方法---------------------------------------------------private ...

  7. Sql Server 带参数的存储过程执行方法

    Sql Server 带参数的存储过程执行方法 Visual C# 动态操作 SQL Server 数据库实例教程(4):带参数的存储过程执行方法 上一篇文章介绍了带参数的SQL语句执行方法和不带参数 ...

  8. oracle常用函数以及调用入参为record的存储过程的方法,

    转自:http://www.cnblogs.com/zhangronghua/archive/2007/08/20/862812.html SQL中的单记录函数1.ASCII返回与指定的字符对应的十进 ...

  9. GIT工程迁移方法总结

    Git工程迁移方法总结 Git最近准备迁移一下位置,这里采用命令行的方式,做如下操作. 1.git init  初始化git仓库,这个时候发现本地文件夹多了个.git的文件夹. 2.git remot ...

随机推荐

  1. ASP.NET生成压缩文件(rar打包)

    首先引用ICSharpCode.SharpZipLib.dll,没有在这里下载:http://files.cnblogs.com/files/cang12138/ICSharpCode.SharpZi ...

  2. ExtJs的事件机制Event(学员总结)

    一.事件的三种绑定方式 1.HTML/DHTML 在标签中直接增加属性触发事件 [javascript] view plaincopy <script type="text/javas ...

  3. (转)ThinkPHP自定义标签

    第一:在当前应用下的Conf文件夹中config.php加两个配制项:             'TAGLIB_LOAD' => true,//加载标签库打开             'APP_ ...

  4. (转)一步一步学习PHP(5)——类和对象

    OO的强大我不想再多说,如果你不认同OO,那么当你放眼当前流行的语言,有哪个又不支持OO的,也许这个很有说服力了吧. 在这一节中,我们就来看看在PHP中如何创建一个类和对象. 1. 创建类 在PHP中 ...

  5. Oracle Pivot学习心得

    今天在做一个查询报表需要将多行的查询结果转换成一行,数据格式如下 ID   Type Parameter Value Machine_NO Operator UpdateTime 1 11111111 ...

  6. 解决java访问.netWebService的常见问题

    到公司没多久,写了一个java调用.net写的webService结果期间用各种方法测试都没有完成,总是抛出异常,最后直接使用SOAP消息去进行调用才成功了,具体代码如下,仅供参考:import ja ...

  7. 浅谈C++ Lambda 表达式(简称LB)

    C++ 11 对LB的支持,对于喜欢Functional Programming的人来说,无疑是超好消息.它使得C++进入了和C#,JavaScript等现代流行的程序设计语言所代表的名人堂. 不熟悉 ...

  8. eclipse慢 优化(转)

    1.打开 eclipse.ini -showsplash com.genuitec.myeclipse.product --launcher.XXMaxPermSize 256M -vmargs -D ...

  9. jquery mobile navbar

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  10. Oracle游标、参数的使用例子

    /// <summary> /// 总部审核 /// </summary> /// <param name="ht"></param> ...