基于DB2及PHP的应用系统跨平台迁移详细步骤(一)
名,如果未指定 -o 选项,则输出默认转到 stdout
-a : 为所有创建程序生成统计信息,如果指定了此选项,则将忽略 -u 选项 -i : 指定登录到数据库所在服务器时所使用的用户标识 -w : 指定登录到数据库所在服务器时所使用的密码 2.根据不同类型对象,分化数据库对象 DDL 脚本 由于源数据库中的各个表数据已经是经过触发器、存储过程等数据库对象处理过的数据,为保证数据库中数据的一致性和完整性,这些数据库对象应该在导入数据后再创建,以防止在导入表数据时重复执行触发器和存储过程等数据库对象生成错误数据。使用文本编辑器编辑由 db2look 生成的 srcdb1.ddl,将创建表及索引的 DDL 语句,创建外键约束的 DDL 语句以及创建触发器和创建存储过程的语句分为四组,分别保存为下面四个 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
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 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |