Dont't recreate the sequence! You would invalidate all independent objects and l

原文出处:https://community.oracle.com/message/4016489#4016489

 

Dont't recreate the sequence! You would invalidate all independent objects and lose all privileges granted for the sequences.
Instead try this:

SQL>CREATE SEQUENCE SEQ_TEST
  2   START WITH  1
  3   INCREMENT BY  1
  4   MINVALUE  1
  5   MAXVALUE  9999999;

Sequence created.

SQL>
SQL>SELECT SEQ_TEST.NEXTVAL
  2    FROM all_objects WHERE ROWNUM < =10;

   NEXTVAL
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10

10 rows selected.

SQL>
SQL>DECLARE
  2     Val   NUMBER;
  3  BEGIN
  4     SELECT SEQ_TEST.CURRVAL
  5       INTO Val
  6       FROM DUAL;
  7
  8     EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_TEST INCREMENT BY ' || TO_CHAR(1 - Val);
  9
 10     SELECT SEQ_TEST.NEXTVAL
 11       INTO Val
 12       FROM DUAL;
 13
 14     EXECUTE IMMEDIATE 'ALTER SEQUENCE SEQ_TEST INCREMENT BY 1';
 15
 16     DBMS_OUTPUT.put_line('New value of SEQ_TEST is ' || TO_CHAR(Val));
 17  END;
 18  /
New value of SEQ_TEST is 1



CREATE OR REPLACE PROCEDURE do_job IS

BEGIN
       drop sequence Srno;
            create sequence SrNo
            minvalue 1
          maxvalue 9999999
          start with 1
          increment by 1
          Order;
               COMMIT;
END do_job;
Declare
v_job number;
begin
dbms_job_submit
(v_job,'do_job',
last_day(sysdate)+1,
to_char(trunc(last_day(sysdate)+1)+(6/24)));

hth, Urs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值