2016年8月4日 星期四

[ORACLE] 建立sequence Part II

        最近在測試GOLDENGATE的時候需要測試sequence透過GOLDENGATE同步時的結果,之前有寫過透過TRIGGER方式來取號([ORACLE] 11g建立sequence),但是我個人是不太愛TRIGGER,因為剛開始使用TRIGGER時都會記得,但久了很多AP幾乎都忘記有這個東西,當有TRIGGER的TABLE資料有異常時,AP就會來問我為什麼資料會這樣,我只要問他是不是有TRIGGER,通常AP就會很快地記起有這件事情,這著實照成了一些困擾。

所以呢這次就改用另一個方式來做吧
01. 先建立一個測試TABLE EMP
       CREATE TABLE "OD_XYZ"."EMP"
            ( COLUMN1  NUMBER(*,0),
              COLUMN2  VARCHAR2(20 BYTE),
              COLUMN3  DATE
            ) TABLESPACE "OD_XYZ_DATA" ;

02. 建立一個名稱為emp_sequence的Sequence 
        CREATE SEQUENCE emp_sequence 
                  INCREMENT BY 1  -- 每次加幾個 
                  START WITH 1    -- 從1開始 
                  NOMAXVALUE      -- 在這邊先不設定最大值 
                  NOCYCLE         -- 採用累加方式不循環使用 
                  CACHE 10; 

03. 新增10000筆測試資料
begin
    for i in 1.. 100000
        loop
             insert into OD_XYZ.emp values (emp_sequence.nextval, 'LEWIS', SYSDATE);
        commit;
    end loop;
end;

04. 看結果
      select * from emp order by 1 desc;



沒有留言:

張貼留言