只能创建整数值序列.

所以声明必须是:

CREATE SEQUENCE invoice_nun

START WITH 1

INCREMENT BY 1;

您可以将获取的值转换为字符串并添加适当的前缀.

select 'INV'||to_char(invoice_nun.nextval,'FM09999999')

from dual;

您可以创建一个函数来模拟返回适当字符串值的序列

create or replace function next_invoice_nun return varchar2

as

begin

return('INV'||to_char(invoice_nun.nextval,'FM09999999') );

end;

/

你现在可以做

select next_invoice_nun

from dual;

CREATE SEQUENCE invoice_nun

CACHE 20

NOORDER

START WITH 1

INCREMENT BY 1;

您应该了解以下内容:

1)如果事务获取序列值并回滚,则序列值将丢失.因此,如果您执行以下操作:

-- fetch invoice_id INV00000001

insert into invoices(invoice_id,...) values (next_invoice_nun,...);

commit;

-- fetch invoice_id INV00000002

insert into invoices(invoice_id,...) values (next_invoice_nun,...);

rollback;

-- fetch invoice_id INV00000003

insert into invoices(invoice_id,...) values (next_invoice_nun,...);

commit;

发票idsINV00000001和INV00000003已插入theinvoicestable,但发票idINV00000002`丢失,因为提取它的语句已回滚

2)如果实例崩溃,则实例缓存中的所有序列都将丢失.在您的示例中,使用缓存的默认值为20.因此,如果实例最多崩溃,则可能会丢失20个序列值. alter native是使用关键字NOCYCLE如果您创建序列,但这会带来性能损失.

3)如果您在RAC系统上,序列号不代表获取语句的顺序.因此,如果第二个语句在与第一个语句不同的实例上执行,则第一个语句可能获取id INV00000021,第二个语句获取id INV00000001.这是因为实例在其高速缓存中获取了前20个序列号,而另一个实例在其高速缓存中获取了第二个20个序列号.第一个语句在获取第二个20个序列号的实例上执行.您可以使用ORDER关键字来避免这种情况,但这会再次带来性能损失

所以人们可以避免2)和3)的性能惩罚的价格,但没有办法避免2).

oracle生成字母序号6,创建以字母数字开头的Oracle序列相关推荐

  1. 【sql server】英文按首字母排序+首字母相同英文排中文后面+数字开头最后+忽略空格影响

    淦,sql server比oracle难用 select BusinessCardFolderId,RealName,Mobile,Company,Job,Phone,Email,Address,Ta ...

  2. oracle 图像包,完美简单详细,图形安装Oracle11g(Oracle Linux系统)

    1.镜像 2.Linux系统安装在虚拟机上安装,系统类型的选择 系统设置 硬盘:40G 内存:2G CPU:2核 Linux系统安装 3.搭建本地仓库# 创建目录,挂载镜像 mkdir  /dvd m ...

  3. Oracle中根据中文获取拼音首字母

    前言 在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母. 实现方式 通过oracle的NLS ...

  4. Oracle任意字符串转换成拼音首字母简写

    Oracle任意字符串转换成拼音首字母简写 需求目标 将"拼音简码"四个字转换成拼音首字母简写PYJM 实现代码 CREATE OR REPLACE FUNCTION FUN_GE ...

  5. Java黑皮书课后题第6章:*6.38(生成随机字符)使用程序清单6-10 RandomCharacter中的方法,打印100个大写字母及100个一位数字,每行打印10个

    6.38(生成随机字符)使用程序清单6-10 RandomCharacter中的方法,打印100个大写字母及100个一位数字,每行打印10个 题目 题目描述 程序清单6-10 破题 代码 运行实例 题 ...

  6. 输出英文字母java数组_JAVA语言之通过生成随机数组来转化为字母进行输出的类...

    本文主要向大家介绍了JAVA语言之通过生成随机数组来转化为字母进行输出的类,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 今天又写了一个通过生成随机数组来转化为字母进行输出的类,但是 ...

  7. php怎样规定密码混合,PHP产生随机字串,可用来自动生成密码 默认长度6位 字母和数字混合...

    /** * 产生随机字串,可用来自动生成密码 默认长度6位 字母和数字混合 * @param string $len 长度 * @param string $type 字串类型 * 0 字母 1 数字 ...

  8. 1024: 计算字母序号 ZZULIOJ

    1024: 计算字母序号 题目描述 输入一个英文字母(可能是大写,也可能是小写),输出该字母在字母表中的序号('a'和'A'的序号为1). 输入 输入只有一个英文字母. 输出 输出一个整数,表示该字母 ...

  9. 1024: 计算字母序号 C语言

    1024: 计算字母序号 时间限制: 1 Sec 内存限制: 30 MB 提交: 34100 解决: 24996 [状态] [讨论版] [提交] [命题人:admin] 题目描述 输入一个英文字母(可 ...

最新文章

  1. vue 点击事件执行多次
  2. gdb debug memory address
  3. 第五章--加载内核Kernel.bin
  4. 测试新版FCKeditor编辑器精简版
  5. 005_JSONArray对象静态方法
  6. ARM体系结构及内核回顾总结(一)
  7. hdu 2059(dp)
  8. 给Java程序员的一些面试建议,大厂面试题汇总
  9. exchange2010 DAG备份
  10. <EDEM CFD案例01>EDEM2018 + FLUENT19.2 Coupling Interface Compiling
  11. win10user文件夹迁移_win10用户文件夹迁移操作方法_win10怎么移动用户文件夹位置-win7之家...
  12. .强力卸载或者删除文件
  13. 计算机专业相关的组名和口号,好的小组队名和口号(精选40个)
  14. 论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第1部分)
  15. [附源码]Python计算机毕业设计Django高校社团管理系统
  16. VsCode工具开发vue项目必装插件
  17. HSV与HSI颜色空间的区别以及和RGB之间的转换
  18. 程序里的映射是什么意思?
  19. 如何合并报表简单快速?
  20. 那些40岁的程序员都去哪了

热门文章

  1. 写作14个月,审稿花10年:这篇论文解决了数学物理界的大问题
  2. 豆瓣9.3的纪录片《西南联大》告诉你:大学学风应如是!
  3. mysql 求两列数据组合_mysql – 将两个具有不同列数的查询组合在一起
  4. 什么叫死锁?死锁案例?死锁必须满足哪些条件?如何定位死锁问题?有哪些解决死锁策略?哲学家问题?
  5. WebMagic写的网络爬虫优秀文章
  6. B - Ada and Queue
  7. 复杂推理模型从服务器移植到Web浏览器的理论和实战
  8. Flagger on ASM·基于Mixerless Telemetry实现渐进式灰度发布系列 1 遥测数据
  9. 阿里云杨敬宇:四层技术构建基于城市场景的边缘计算
  10. Spring 社区的唯一一个国产开源项目 - Spring Cloud Alibaba 毕业了