oracle中如何为字符串创建序列??
举一个例子??
举一个例子??
解决方案 »
- 子查询可否用表连接代替?
- 无效游标!
- 求助:请问这是同步日志吗,能配置它只保留最少吗?
- oracle存储过程能输出空值参数吗?
- 请大家帮我看看这个SQL语句如何写??
- 想深入了解关于数据块
- 请教呀!
- 怎么样在nt里面做双机预备,2台服务器都是ibm
- 请教 sql语句中如何实现if 或case语句。
- 一个实例下多个用户名,都有数据,怎么样才能删除用户及用户下的所有数据并且释放物理空间
- 用Oracle SQL Developer 将MS SQL Server 数据库迁移到 Oracle 11g,“定位源插件”检测失败。
- 求助:JDeveloper+Application Development Framework
seq.currval=a then
seq.nextval=b?
create sequence seqtest1
start with 65
maxvalue 90
minvalue 65
cycle;
create sequence seqtest2
start with 65
maxvalue 90
minvalue 65
cycle;
create sequence seqtest3
start with 65
maxvalue 90
minvalue 65
cycle;
declare
a number:=seqtest1.nextval;
b number:=seqtest2.nextval;
c number:=seqtest3.nextval;
begin
execute immediate 'create global temporary table tmp(a varchar2(10))' ;
for i in 1..1000 loop
execute immediate 'insert into tmp values(chr(:1)||chr(:2)||chr(:3))'using a,b,c;
if b=90 and c=90 then a:=seqtest1.nextval; end if;
if c=90 then b:=seqtest2.nextval; end if;
c:=seqtest3.nextval;
end loop;
end;
A
AAA
AAB
AAC
AAD
AAE
AAF
AAG
AAH
AAI
AAJ
AAK
...
什么是为字符串串创建序列呀。可以create sequence来创建sequence,这里的sequence是数字字段,你可以自己来进行处理变成字符呀。
用3个seq的可以,也可以用一个seq来实现,进行一下转换, 3个seq的性能要低于用一个seq的。
create sequence sequence_name [increment by n] [start with n] [{maxvalue n | nomaxvalue(默认) }]
[{minvalue n | nominvalue (默认)}] [{cycle | nocycle (默认)}] [{cache n | nocache(默认20)}];
alter sequence sequence_name [increment by n] [{maxvalue n | nomaxvalue }] [{minvalue n | nominvalue }]
[{cycle | nocycle}] [{cache n | nocache}];
首次引用序列时,只能使用伪列nextval;修改序列时,序列的初始值不能修改。
nextval即序列的下一个值,currentval是当前序列值
若要创建sx_01、sx_02这样的值,可以创建一个序列,然后在使用to_char