`
ahuango
  • 浏览: 55619 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DB2 复制SCHEMA

    博客分类:
  • DB2
阅读更多
问题: 从一个已有的schema 创建一个结构完全相同的schema。

DB2的一个存储过程,可以帮我们实现这样的功能,它就是SYSPROC.ADMIN_COPY_SCHEMA, 它的定义结构如下:
ADMIN_COPY_SCHEMA(
	VARCHAR(128) sourceschema,
	VARCHAR(128) targetschema,
	VARCHAR(128) copymode,
	VARCHAR(128) objectowner,
	CLOB(2M) sourcetbsp,
	CLOB(2M) targettbsp,
	VARCHAR(128) errortabschema,
	VARCHAR(128) errortab
);


参数的详细解释:
  • sourceschema
  •      要copy的源schema
  • targetschema
  •      目标schema, 无需已经存在
  • copymode
  •     copy的方式,主要有三种,
            DDL, 只拷贝对象的定义
            COPY, 对象会在新的schema中创建,然后会load(NONRECOVERABLE MODE)数据到新的schema下的对象中。因此在执行完存储过程后需要做一次备份,否则新表无法访问。
            COPYNO, 在新的schema创建,然后load(COPYNO MODE)数据到新的schema
  • objectowner
  •      新创建对象的owner, 如果为NULL,那么执行COPY的用户将是owner
  • sourcetbsp
  •      用于映射新的表空间,这个参数是以逗号隔开的表空间名。如果为NULL,那么所有新的对象都与原有的对象创建于同一个表空间。
  • targettbsp
  •      以逗号隔开的列表,当源对象来自sourcetbsp中的一个表空间是,新的copy对象将会创建在targettbsp列表中相应次序的表空间中。 如果为NULL, 与源对象在同一表空间创建。如果为SYS_ANY, 则会用默认的表空间选择算法来选择表空间。
  • errortabschema
  •      这是一个[IN OUT]参数,当有对象不能被成功copy时,需要将这些信息存于一张表中作为日志。 这个参数是log表的schema的名称,在SYSTOOLSPACE表空间中。 如果没有这样的记录,作为OUT,这个参数将返回NULL。
  • errortab
  •      [IN OUT]参数,log表的名称。 这个表不能创建或已存在,那么存储过程调用将失败,且返回出错信息。表的具体定义见下图:



Sample:
CALL SYSPROC.ADMIN_COPY_SCHEMA('SOURCE_SCHEMA', 'TARGET_SCHEMA', 
   'COPY', NULL, 'SOURCETS1 , SOURCETS2', 'TARGETTS1, TARGETTS2, 
   SYS_ANY', 'ERRORSCHEMA', 'ERRORNAME') 


DB2 CALL SYSPROC.ADMIN_COPY_SCHEMA('HUANG','JAY','DDL',NULL,NULL,NULL,'ERRORSCHEMA','ERRORNAME')




Reference: http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0022035.htm
  • 大小: 53.1 KB
  • 大小: 19.3 KB
分享到:
评论

相关推荐

    Linux系统重启db2数据库命令实例详解.docx

    db2 list tables for schema [user] 复制一张表:db2 create table t1 like t2 显示表结构:db2 describe table tablename 查询表:db2 "select * from table tablename where ..." 执行SQL脚本:db2 -tvf scripts....

    Linux系统怎么用命令重启db2数据库.docx

    列出系统表:db2 list tables for system 列出所有用户表:db2 list tables 列出所有表:db2 list tables for all 列出特定用户表:db2 list tables for schema [user] 复制一张表:db2 create table t1 like t2 ...

    f3-schema-builder:用于PHP无脂肪框架SQL Schema Builder插件

    只需将schema.php复制到F3的lib/db/sql文件夹中即可。 做完了 如果使用作曲家,则可以通过运行composer require ikkez/f3-schema-builder:dev-master添加此软件包。 快速开始 要使用“架构”构建器,您需要一个活动...

    基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)

    1、新增对DB2数据库的支持 2、新增按字段生成文件,支持把字段、JSON、XML数据转换成任何代码 3、新增大量新的自定义模板,如:DDL、随机数据、导出数据、数据模型、Ant Design Vue的CRUD模板等 4、新增更多用于...

    经典SQL语句大全

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:...

    数据库操作语句大全(sql)

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:...

    sql经典语句一部分

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    db2 IBM DB2在企业级的应用最为广泛, 在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器。收费 大型企业 Access 微软 Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时...

    php网络开发完全手册

    6.2.6 复制文件 96 6.3 本地文件的操作实例——小型留言本 96 6.3.1 留言发表模块 96 6.3.2 浏览模块 98 6.4 远程文件的操作实例 99 6.5 文件的上传与下载 99 6.5.1 文件的上传 99 6.5.2 文件的下载 100 6.6 小结 ...

    asp.net知识库

    用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet数据对象结合的自定义数据...

Global site tag (gtag.js) - Google Analytics