vip网站解析建设,电商网站前后台模板,当当网的网站怎么做的,四川达州网站建设ORACLE修改序列值为表内某字段#xff08;主键#xff09;最大值 想修改序列值#xff0c;网上基本的都是自己看要加到多少#xff0c;然后要么调步长#xff0c;要么删了重建。 想直接用declare使用标量然后调#xff0c;但是逻辑里面不能有DDL语句。 不过最后解决了 直… ORACLE修改序列值为表内某字段主键最大值 想修改序列值网上基本的都是自己看要加到多少然后要么调步长要么删了重建。 想直接用declare使用标量然后调但是逻辑里面不能有DDL语句。 不过最后解决了 直接上代码
-- 删除原序列
drop sequence txxx_s;
declaremaxid integer; -- 最大ID变量v_cursor integer; -- 游标v_sql varchar2(500); -- sql
begin-- 将最大的id插入到变量中select max(id) into maxid from txxx;v_cursor:dbms_sql.open_cursor;v_sql: create sequence txxx_s start with || maxid ;dbms_sql.parse(v_cursor, v_sql, dbms_sql.v7);dbms_sql.close_cursor(v_cursor);end;参考 PL/SQL块中不能直接执行DDL语句(错误) 傻逼了我原来还有更简单的然后没有其他权限风险的。。。我也不知道上面为什么执行DDL语句会报错- -直接execute就好了嘛。。 最新代码
drop sequence txxx_s;
declaremaxid integer;v_sql varchar2(500);
beginselect max(id)1 into maxid from txxx;v_sql: create sequence txxx_s start with || maxid ;EXECUTE IMMEDIATE v_sql;end;