環境是這樣的:
需要導入大量數據到Oracle,目前Oracle已建立索引和觸發器了,導入的數據是樹型結構,需要關聯。
采用的方法是:
刪除以前數據庫的索引和觸發器,用OracleBulkCopy批量導入數據,然后再創建序列和觸發器,創建序列的時候,初始ID需要重新設置過,一般是數據庫記錄最大ID加一。
--表: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');