zoukankan      html  css  js  c++  java
  • db2 存储过程迁移方法

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

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

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

    导入过程见图:

    打开后输入下面命令

  • 相关阅读:
    jdk动态代理
    mysql-索引方案
    闭包的有点以及出现的内存泄露2016/4/12
    表单2016/4/8
    cursor
    同一个事件绑定不同的函数
    a:link visited hover active
    对于属性操作,加入属性,移除属性
    offset获取位置
    清除浮动6中方法
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5332333.html
Copyright © 2011-2022 走看看