Java Fly

          Java&Oracle
          隨筆 - 12, 文章 - 20, 評論 - 27, 引用 - 0
          數(shù)據(jù)加載中……

          用存儲過程重置序列

          用存儲過程重置序列
          SQL> create sequence seq_1 increment by 1 start with 1 maxvalue 999999999;
          序列已創(chuàng)建。
          SQL> create or replace procedure seq_reset(v_seqname varchar2) as
          2 n number(10);
          3 tsql varchar2(100);
          4 begin
          5 execute immediate 'select '||v_seqname||'.nextval from dual' into n;
          6 n:=-(n-1);
          7 tsql:='alter sequence '||v_seqname||' increment by '|| n;--讓序列一次遞增-N,實現(xiàn)歸0
          8 execute immediate tsql;
          9 execute immediate 'select '||v_seqname||'.nextval from dual' into n;
          10 tsql:='alter sequence '||v_seqname||' increment by 1';
          11 execute immediate tsql;
          12 end seq_reset;
          13 /
          過程已創(chuàng)建。
          SQL> select seq_1.nextval from dual;
          NEXTVAL
          ---------
          2
          SQL> /
          NEXTVAL
          ---------
          3
          SQL> /
          NEXTVAL
          ---------
          4
          SQL> /
          NEXTVAL
          ---------
          5
          SQL> exec seq_reset('seq_1');
          PL/SQL 過程已成功完成。
          SQL> select seq_1.currval from dual;
          CURRVAL
          ---------
          1
          SQL>
          這樣可以通過隨時調(diào)用此過程,來達到序列重置的目的。

          posted on 2006-04-23 13:21 Java Fly 閱讀(835) 評論(1)  編輯  收藏 所屬分類: Oracle base

          評論

          # re: 用存儲過程重置序列  回復(fù)  更多評論   

          很好!謝謝!!!
          2009-02-18 15:48 | hl
          主站蜘蛛池模板: 陕西省| 乌兰县| 绩溪县| 津市市| 南陵县| 民勤县| 东丰县| 蓝田县| 宝坻区| 剑川县| 成都市| 兴化市| 泗水县| 榆树市| 平利县| 繁昌县| 鄯善县| 漳浦县| 安新县| 武夷山市| 香港 | 左云县| 金门县| 江孜县| 天津市| 鄂州市| 大竹县| 会泽县| 玉龙| 米泉市| 疏勒县| 泰来县| 婺源县| 太康县| 泰顺县| 安吉县| 清涧县| 禹州市| 昌乐县| 沧州市| 福贡县|