[Oracle] 迁移数据
2010-10-15 16:22
197 查看
连接远程数据库后(源数据库),将源数据库中指定表的数据覆盖到本地数据库中的指定表
创建远程连接后,执行该存储过程
CREATE OR REPLACE PROCEDURE TSTEST.SYS_DATAMOVEEXE
AS
ERRCODE NUMBER(18,0);
ERRDESC VARCHAR2(256);
V_STEP INT;
ISLIVE NUMBER(18,0);
BEGIN
ERRCODE:=0;
ERRDESC:='';
ISLIVE:=-1; --大于0表示该表存在
--迁移数据步骤:清空TSTEST中表数据,将TS对应的表数据拷进来
--MOVE1
V_STEP:=0;
ERRDESC:='查找科室表:';
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE ProduceDepart';
INSERT INTO PRODUCEDEPART NOLOGGING
SELECT *
FROM TSTEST.PRODUCEDEPART@DBL_ORCLIU;
END;
--MOVE2
V_STEP:=0;
ISLIVE := -1;
ERRDESC:='查找物料配套主表:';
BEGIN
SELECT COUNT(1) INTO ISLIVE
FROM USER_TABLES
WHERE TABLE_NAME = 'PRODUCTMATCH';
IF ISLIVE>0 THEN
EXECUTE IMMEDIATE 'TRUNCATE TABLE PRODUCTMATCH';
INSERT INTO PRODUCTMATCH NOLOGGING
SELECT *
FROM TSTEST.PRODUCTMATCH@DBL_ORCLIU;
ELSE
EXECUTE IMMEDIATE 'CREATE TABLE PRODUCTMATCH/
(/
ID NUMBER(18,0) NOT NULL,/
CATEGORYID NUMBER(18,0) NOT NULL,/
MODELID NUMBER(18,0) NOT NULL,/
REMARK VARCHAR2(200),/
TSTOKEN VARCHAR2(20),/
CONSTRAINT PRODUCTMATCH_PK PRIMARY KEY (ID) USING INDEX/
PCTFREE 10/
INITRANS 2/
MAXTRANS 255/
TABLESPACE TSTESTING/
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)/
LOGGING/
)PCTFREE 10/
MAXTRANS 255/
TABLESPACE TSTESTING/
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)/
NOCACHE/
LOGGING';
INSERT INTO PRODUCTMATCH NOLOGGING
SELECT *
FROM TSTEST.PRODUCTMATCH@DBL_ORCLIU;
END IF;
END;
COMMIT;
END SYS_DATAMOVEEXE;
/
写于 2010-10-15
创建远程连接后,执行该存储过程
CREATE OR REPLACE PROCEDURE TSTEST.SYS_DATAMOVEEXE
AS
ERRCODE NUMBER(18,0);
ERRDESC VARCHAR2(256);
V_STEP INT;
ISLIVE NUMBER(18,0);
BEGIN
ERRCODE:=0;
ERRDESC:='';
ISLIVE:=-1; --大于0表示该表存在
--迁移数据步骤:清空TSTEST中表数据,将TS对应的表数据拷进来
--MOVE1
V_STEP:=0;
ERRDESC:='查找科室表:';
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE ProduceDepart';
INSERT INTO PRODUCEDEPART NOLOGGING
SELECT *
FROM TSTEST.PRODUCEDEPART@DBL_ORCLIU;
END;
--MOVE2
V_STEP:=0;
ISLIVE := -1;
ERRDESC:='查找物料配套主表:';
BEGIN
SELECT COUNT(1) INTO ISLIVE
FROM USER_TABLES
WHERE TABLE_NAME = 'PRODUCTMATCH';
IF ISLIVE>0 THEN
EXECUTE IMMEDIATE 'TRUNCATE TABLE PRODUCTMATCH';
INSERT INTO PRODUCTMATCH NOLOGGING
SELECT *
FROM TSTEST.PRODUCTMATCH@DBL_ORCLIU;
ELSE
EXECUTE IMMEDIATE 'CREATE TABLE PRODUCTMATCH/
(/
ID NUMBER(18,0) NOT NULL,/
CATEGORYID NUMBER(18,0) NOT NULL,/
MODELID NUMBER(18,0) NOT NULL,/
REMARK VARCHAR2(200),/
TSTOKEN VARCHAR2(20),/
CONSTRAINT PRODUCTMATCH_PK PRIMARY KEY (ID) USING INDEX/
PCTFREE 10/
INITRANS 2/
MAXTRANS 255/
TABLESPACE TSTESTING/
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)/
LOGGING/
)PCTFREE 10/
MAXTRANS 255/
TABLESPACE TSTESTING/
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 BUFFER_POOL DEFAULT)/
NOCACHE/
LOGGING';
INSERT INTO PRODUCTMATCH NOLOGGING
SELECT *
FROM TSTEST.PRODUCTMATCH@DBL_ORCLIU;
END IF;
END;
COMMIT;
END SYS_DATAMOVEEXE;
/
写于 2010-10-15
相关文章推荐
- oracle 数据迁移工具 oracle sql developer的使用(2)
- 如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程)
- 简单粗暴将sqlserver表以及数据迁移到oracle
- 数据从MySQL迁移到Oracle需要注意些什么
- Oracle基础知识-数据迁移
- 数据从MySQL迁移到 Oracle的注意事项
- SQL SERVER数据迁移到ORACLE
- MS SQL到Oracle的数据迁移笔记
- oracle导入大数据、数据库之间迁移数据简单方法
- MySQL与Oracle的数据迁移注意事项,另附转换工具链接
- 迁移oracle的dbf数据文件
- oracle迁移数据到mysql
- ORACLE12C新特性之在线迁移活跃的数据文件
- ORACLE 如何迁移数据文件
- oracle数据迁移到db2数据库的实现方法(分享)
- oracle使用bulk collect insert实现大数据快速迁移
- [转载]oracle数据文件迁移
- oracle常用的数据迁移方法
- Access数据迁移到Oracle的java代码
- 迁移Oracle数据到TimesTen