快速业务通道

基于DB2及PHP的应用系统跨平台迁移详细步骤(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-26
名,如果未指定 -o 选项,则输出默认转到 stdout

-a : 为所有创建程序生成统计信息,如果指定了此选项,则将忽略 -u 选项

-i : 指定登录到数据库所在服务器时所使用的用户标识

-w : 指定登录到数据库所在服务器时所使用的密码

2.根据不同类型对象,分化数据库对象 DDL 脚本

由于源数据库中的各个表数据已经是经过触发器、存储过程等数据库对象处理过的数据,为保证数据库中数据的一致性和完整性,这些数据库对象应该在导入数据后再创建,以防止在导入表数据时重复执行触发器和存储过程等数据库对象生成错误数据。使用文本编辑器编辑由 db2look 生成的 srcdb1.ddl,将创建表及索引的 DDL 语句,创建外键约束的 DDL 语句以及创建触发器和创建存储过程的语句分为四组,分别保存为下面四个 DDL 脚本:


srcdb1_tables.ddl srcdb1_foriegnkeys.ddl

srcdb1_triggers.ddl srcdb1_procedures.ddl

srcdb1_tables.ddl :包含创建 SEQUENCE,UDF,TABLE,VIEW 等数据库对象的 ddl 语句。

清单2. srcdb1_tables.ddl 语句

CREATE SEQUENCE "SRCDB1"."SAMPLE_SEQ_1" AS INTEGER

MINVALUE 1 MAXVALUE 9999999999

START WITH 1 INCREMENT BY 1;

CREATE FUNCTION " SRCDB1"." SAMPLE _FUNC_1" (

VARCHAR(254),

VARCHAR(254),

VARCHAR(254)

) RETURNS VARCHAR(254)

SPECIFIC SAMPLE _FUNC_1 ……;

CREATE TABLE " SRCDB1"." SAMPLE _TAB_1" (

"TAB_COL1" CHAR(20) NOT NULL ,

"TAB_COL2" VARCHAR(70) NOT NULL ) ;

CREATE TABLE " SRCDB1"." SAMPLE _TAB_2" (……);

……

CREATE TABLE " SRCDB1"." SAMPLE _TAB_N" (……);

CREATE VIEW SRCDB1.SAMPLE_VIEW_1 (VIEW_COL1,VIEW_COL2) AS SELECT distinct

COL1 , COL2 FROM SAMPLE_TAB WHERE ……;

CREATE VIEW SRCDB1.SAMPLE_VIEW_2 ……;

……

CREATE VIEW SRCDB1.SAMPLE_VIEW_N ……;

srcdb1_foriegnkeys.ddl :包含创建外键约束的 ddl 语句。

清单3. srcdb1_foriegnkeys.ddl 语句

ALTER TABLE " SRCDB1"."SAMPLE_FK_1"

ADD CONSTRAINT "SQL030903143850120" FOREIGN KEY

("FK_COL1")

REFERENCES " SRCDB1"."SAMPLE_TABLE"

("COL1");

ALTER TABLE " SRCDB1"."SAMPLE_FK_2" ADD ……;

……

ALTER TABLE " SRCDB1"."SAMPLE_FK_N" ADD ……;

srcdb1_triggers.ddl :包含创建触发器的 ddl 语句。

清单 4. srcdb1_triggers.ddl 语句

CREATE TRIGGER SRCDB1.SAMPLE_TRIG_1 AFTER UPDATE OF col1 ON SRCDB1.SAMPLE_TAB


REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL WHEN ( n.col1 > 3)

BEGIN ATOMIC

update SAMPLE_TAB

set(col2) = ''anotherValue'' where col1 = n.col1 ;--

END;

CREATE TRIGGER SRCDB1. SAMPLE_TRIG_2 ……;

……

CREATE TRIGGER SRCDB1. SAMPLE_TRIG_N ……;

srcdb1_procedures.ddl :包含创建 SQL 存储过程以及 java 存储过程的 ddl 语句。

清单 5. srcdb1_procedures.ddl语句

CREATE PROCEDURE " SRCDB1"." JAVA_PROCEDURE_1" (

OUT SQLSTATE CHARACTER(5),

OUT ROWS_SUBMITED INTEGER,

IN BATCH_ID INTEGER,

IN LEVEL VARCHAR(4000)

)

DYNAMIC RESULT SETS 0

SPECIFIC SUBMIT_BATCH

EXTERNAL NAME ''Submit_batch!submit_batch''

LANGUAGE JAVA

PARAMETER STYLE JAVA

NOT DETERMINISTIC

FENCED THREADSAFE

MODIFIES SQL DATA

NO DBINFO;

CREATE PROCEDURE " SRCDB1"."JAVA_PROCEDURE_2" ……;

……

CREATE PROCEDURE " SRCDB1"."JAVA_PROCEDURE_N" ……;


SET CURRENT SCHEMA = " SRCDB1";

SET CURRENT PATH = "SYSIBM","SYSFUN"," SRCDB1";

CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_1 (

IN hostname varchar(4000),

IN username varchar(4000),

OUT SQLCODE_OUT int )

SPEC

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号