`
sjk2013
  • 浏览: 2185318 次
文章分类
社区版块
存档分类
最新评论

Oracle 产生序列的 6 种方法

 
阅读更多
方法一:

sys@ORCL> select level from dual connect by level<=5;

     LEVEL
----------
         1
         2
         3
         4
         5


方法二:

sys@ORCL> select rownum from dba_objects where rownum<=5;

    ROWNUM
----------
         1
         2
         3
         4
         5


方法三:

sys@ORCL> select to_number(column_value) n from xmltable('1 to 5');

         N
----------
         1
         2
         3
         4
         5


方法四:
      
select n
  from (select 1 v from dual)
model
   dimension by (v)
   measures (v n)
   rules 
   (
     n[for v from 2 to 5 increment 1] = n[cv(v)-1] + 1               
   )
   
sys@ORCL> /

         N
----------
         1
         2
         3
         4
         5



方法五:

with t(n) as 
(
  select 1 from dual
  union all 
  select n + 1 from t where n < 5
)
select n from t


sys@ORCL> /

         N
----------
         1
         2
         3
         4
         5
         
         
         
方法六:

create or replace function generator (n pls_integer) return sys.odcinumberlist pipelined is
  m pls_integer := trunc(n / 10);
  r pls_integer := n - 10 * m;
begin
  for i in 1 .. m loop
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
    pipe row (null);
  end loop;
  for i in 1 .. r loop
    pipe row (null);
  end loop;
end;
/
alter function generator compile plsql_code_type = native;


sys@ORCL> select * from table(generator(5));

         N
----------
         1
         2
         3
         4
         5    




By David Lin

2013-06-19

Always be a first-rate version of yourself,insted of a second-rate version of someone else

分享到:
评论

相关推荐

    TOAD for oracle 序列号产生器 (绝对可用)

    TOAD for oracle 序列号产生器 测试过 10.x 版可用

    Navicat for Oracle 10.1.7

    它可以在Oracle数据库8i以上的版本中运行,并且支持大部份最新的Oracle功能,包括目录、数据表空间、同义词、物化检索、触发器、序列及类型等。Navicat的的功能不仅可以满足专业开发人员的所有需求,而且对Oracle的...

    ORACLE9i_优化设计与系统调整

    §10.7 哪种类型的表设为cache 方式 116 §10.8 数据表和索引分开原则 116 §10.9 是否采用簇和分区 116 §10.10 表和索引的空间预分配 116 §10.11 确定数据库对象存储大小 117 §10.11.1 非簇表的大小计算 117 §...

    oracle11g

    oracle11g 第一部分:SQL语言基础 第一章:关系型与非关系型...第十八章 通过GROUP BY产生统计报告 第十九章:ORACLE分层查询 第二十章:Oracle的Timezone 第二十一章:全球化特性与字符集 第二十二章:正则表达式

    比较经典的Oracle入门的例题

    Oracle初学的一些经典题型总结,答案与题目一起,希望入学者拿去参考参考!

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    14.10 序列化事务 403 14.11 隔离事务 406 14.12 自治事务 409 14.13 小结 413 第15章 测试与质量保证 415 15.1 测试用例 416 15.2 测试方法 417 15.3 单元测试 418 15.4 回归测试 422 15.5 模式修改 422 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    Oracle中权限主要分为两种,系统权限和实体权限。  系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。  DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。  RESOURCE:...

    oracle数据库经典题目

    20.序列是一种可被多个用户使用的用于产生一系列唯一数字的数据库对象。尤其适合多用户环境中,可以生成唯一的序列号而没有磁盘I/O或事务处理锁定开销。 21. 一个表空间具有离线(OFFLINE)、在线(ONLINE)、只读...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    oracle中的ID号实现自增长的方法

    序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被...

    Oracle创建视图(View)

    视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    第6章 Oracle安全性 165 6.1 创建和管理数据库用户账户 166 6.1.1 用户账户属性 166 6.1.2 身份验证方法 170 6.1.3 创建账户 173 6.2 授予和撤销权限 176 6.2.1 系统权限 176 6.2.2 对象权限 178 6.3 创建...

    oracle从入门到精通

    6、spool +路径 ...........................................................................................................................10 7、连接操作符: || .......................................

    PLSQL序列

    PLSQ语句 1.序列 create sequence seq_XXX start with 1 ...选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。

    Oracle之DBMS_RANDOM包详解

     默认情况下,DBMS_RANDOM包是根据用户、时间、会话来进行初始化,这样,即便是同一个语句,每次生成的数值都会不一样,但这样会产生一个问题,在测试环境下,如果我想每次生成的随机序列都是一样的,该怎么办?...

    Oracle从入门到精通

    1.8、用字函数产生的总计................................... 1.9、子查询:............................................. 2.0、替换变量:........................................... 1.&.......................

    Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

    该语句拼接 时间 与 LPAD产生的 ‘REFUNDSEQ.NEXTVAL值的前6位有字符,如果不足6位,就用0补足’ ,为防止出现重复票号增加时间 ,一天最多出现999999个有效票号 DUAL : 是oracle的虚拟表,不是真实存在的,又称...

Global site tag (gtag.js) - Google Analytics