• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

嘻哈小王

欢迎来到我的乐园
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

oracle--批量修改sequence值

declare
  seq_name  varchar2(100);
  l_currval number; --序列的当前值
  cursor seq_cur is
    select ur.sequence_name from user_sequences ur; --将当前数据库所有序列的名称存放到游标中
begin
  --dbms_output.enable(buffer_size=>null);
  open seq_cur;
  fetch seq_cur
    into seq_name;
  loop
    exit when not seq_cur%found;
    --修改数据库序列的下限
    --execute immediate 'alter sequence '||seq_name||' minvalue -5000';
  
    --需要变化的数量
    execute immediate 'alter sequence ' || seq_name ||
                      ' increment by 10000';
  
    --给序列取下一个数
    execute immediate 'select ' || seq_name || '.nextval from dual'
      into l_currval;
  
    --将序列的递增情况,恢复为按1递增
    execute immediate 'alter sequence ' || seq_name || ' increment by 1';
  
    --将数据库序列的下限修改为1
    execute immediate 'alter sequence ' || seq_name || ' minvalue 1';
  
    --dbms_output.put_line(l_currval);
    fetch seq_cur
      into seq_name;
  end loop;
  close seq_cur;
end;

 

posted on 2025-03-21 11:15  琅琊小王  阅读(59)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3