Oracle 导入大量数据

时间:2022-01-26 12:36:57

环境是这样的:

  需要导入大量数据到Oracle,目前Oracle已建立索引和触发器了,导入的数据是树型结构,需要关联。

采用的方法是:

  删除以前数据库的索引和触发器,用OracleBulkCopy批量导入数据,然后再创建序列和触发器,创建序列的时候,初始ID需要重新设置过,一般是数据库记录最大ID加一。

 

Oracle 导入大量数据

--表:TB_PROJECTS1    
    
--删除触发器
DROP TRIGGER TR_TB_PROJECTS1;
    
--删除序列
DROP SEQUENCE SQ_TB_PROJECTS1;


--创建序列    
create sequence SQ_TB_PROJECTS1 increment by 1 start with 600;
    

--创建触发器    
create or replace
trigger TR_TB_PROJECTS1 before insert on TB_PROJECTS1 for each row 
begin 
select SQ_TB_PROJECTS1.nextval into :new.PROID from dual; 
end;    
        

    
--插入数据 有ID
INSERT INTO "CMSP"."TB_PROJECTS1" 
            ("PROID", "PROJECTNAME", "PROJECTCODE", "PARENTID", "NEXTID", "PROJECTORDER", "ISENABLED", "OWNERID")
VALUES         ('55',         'name1',          'code1',         '0',        '0',         '0',           '1',          '0');
    
    
--插入数据 无ID
INSERT INTO "CMSP"."TB_PROJECTS1" 
                ("PROJECTNAME", "PROJECTCODE", "PARENTID", "NEXTID", "PROJECTORDER", "ISENABLED", "OWNERID")
VALUES             ('name1',              'code1',       '0',         '0',          '0',               '1',          '0');