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 閱讀(838) 評論(1)  編輯  收藏 所屬分類: Oracle base

          評論

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

          很好!謝謝!!!
          2009-02-18 15:48 | hl
          主站蜘蛛池模板: 安图县| 松潘县| 台湾省| 太谷县| 新疆| 依兰县| 宣武区| 吉安县| 双鸭山市| 防城港市| 内丘县| 阿巴嘎旗| 永福县| 毕节市| 那曲县| 伊通| 紫阳县| 九寨沟县| 图木舒克市| 象山县| 衡阳县| 珠海市| 平顶山市| 进贤县| 乾安县| 文山县| 江津市| 丰镇市| 北流市| 杨浦区| 南木林县| 汶上县| 肇东市| 隆安县| 辽中县| 盐边县| 碌曲县| 云阳县| 长宁县| 临洮县| 奇台县|