建立一个测试序列
create sequence test14
minvalue 1
maxvalue 10
start with 6
increment by 1
cycle
nocache;
重建测试序列的存储过程
create or replace procedure seq_reset(v_seqname varchar2) as
n number(10);
tsql varchar2(100);
begin
execute immediate 'select' || v_seqname || '.nextval into n from dual';
n:=-(n-1);
tsql:='alter sequence' || v_seqname || 'increment by' || n;
execute immediate tsql;
execute immediate 'select'|| v_seqname ||'.nextval into n from dual';
tsql:='alter sequence' || v_seqname || 'increment by 1';
execute immediate tsql;
end seq_reset;
/
exec seq_reset('test14')
第 1 行出现错误:
ORA-00900: 无效 SQL 语句
ORA-06512: 在 "SYS.SEQ_RESET", line 5
ORA-06512: 在 line 1
执行时报以上错误,请大家帮帮忙。谢谢!
create sequence test14
minvalue 1
maxvalue 10
start with 6
increment by 1
cycle
nocache;
重建测试序列的存储过程
create or replace procedure seq_reset(v_seqname varchar2) as
n number(10);
tsql varchar2(100);
begin
execute immediate 'select' || v_seqname || '.nextval into n from dual';
n:=-(n-1);
tsql:='alter sequence' || v_seqname || 'increment by' || n;
execute immediate tsql;
execute immediate 'select'|| v_seqname ||'.nextval into n from dual';
tsql:='alter sequence' || v_seqname || 'increment by 1';
execute immediate tsql;
end seq_reset;
/
exec seq_reset('test14')
第 1 行出现错误:
ORA-00900: 无效 SQL 语句
ORA-06512: 在 "SYS.SEQ_RESET", line 5
ORA-06512: 在 line 1
执行时报以上错误,请大家帮帮忙。谢谢!
解决方案 »
- 初学者求指导,导入DMP表在哪查看?
- 错误:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。
- 存储过程优化
- 网上流传的in ,exists,not的效率有谁做过测试啊
- oracle numer 精度,小数位的关系
- 有关UTL_FILE包读写文件的问题!一定要帮我呀!!!!!!
- 哪位有oracle 数据库学习的电子文档
- ORCCLE816 客户端连不上服务器,但令一个服务器可以连上,怎么回事?
- 如何得到上周的记录?
- 后台存储过程运行和前台脚本运行数据同步问题求教,谢谢
- 关于oracle inser/update 的问题
- TNS协议解析SQL命令
==>
execute immediate 'select' || v_seqname || '.nextval from dual' into n;
* * **处需补足空格
1111111111111111111111*11111111111111111*111111111111**处需补足空格
-- alter sequence 成吗?-- 还有:好多语句要加空格
scott@SZTYORA> alter sequence test14 increment by 2;序列已更改。已用时间: 00: 00: 00.01
scott@SZTYORA> alter sequence test14 increment by 20;
alter sequence test14 increment by 20
*
第 1 行出现错误:
ORA-04005: INCREMENT 必须小于 MAXVALUE 与 MINVALUE 的差-- Alter sequence 是可以,但是容易出错!
SQL> create sequence test14
2 minvalue 1
3 maxvalue 10
4 start with 6
5 increment by 1
6 cycle
7 nocache
8 /序列已创建。
SQL> edi
已写入 file afiedt.buf 1 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;
8 execute immediate tsql;
9 execute immediate 'select '|| v_seqname ||'.nextval from dual' into n;
10 dbms_output.put_line(n);
11 tsql:='alter sequence '|| v_seqname ||' increment by 1';
12 execute immediate tsql;
13 dbms_output.put_line(n);
14* end seq_reset;
SQL> /过程已创建。SQL> exec seq_reset('test14');
1
1PL/SQL 过程已成功完成。
-- 连接处要加空格;序列是可以改的就是不能改序列的开始值,可以改增量以及最大小值