惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
爱范儿
爱范儿
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
Jina AI
Jina AI
B
Blog
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
腾讯CDC
C
Check Point Blog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
罗磊的独立博客
B
Blog RSS Feed
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 叶小钗
M
MIT News - Artificial intelligence
GbyAI
GbyAI

博客园 - ZH.net

在vb.net中通过ODBC从Oracle 9i向Access倒数据 从SQLSERVER向ORACLE8迁移的技术实现方案 Part V [转] 从SQLSERVER向ORACLE8迁移的技术实现方案 PartIV [转] 从SQLSERVER向ORACLE8迁移的技术实现方案 PartIII [转] 从SQL SERVER向ORACLE的迁移方案[转] PartII Sql Server 转入 Oracle part I (转自网络) 在 .NET 中使用 Oracle 数据库事务 作者:Jason Price 转自oracle.com Oracle Trigger(转自网络) 一些正则表达式 - ZH.net - 博客园 接昨日,将上传至oracle的excel文件下载下来 将文件(word,excel等)存入oracle的一个字段 .net studio 2005操作dbf文件 Web利用Gloabl.asax实现多线程任务 maintain AD(将一个账号移动到另一个群组) 一個Check AD的类。from MSDN 一些JS ViewState的一些学习笔记 发mail时smtp服务器设置的一个问题 datagrid前加checkbox
Oracle的分页以及sequence
ZH.net · 2006-08-02 · via 博客园 - ZH.net

分页sql:(转自http://zjhh.bokee.com/4981250.html)
方案1: select ID2 from
     (
       select ID2 , rownum as rown from
       (
        select ID2  from Test2 order by ID2
       )
       where rownum <= 8
     )
     where rown >= 6;

方案2: select id2 from (select ROWNUM as rown, id2 from test2) DataSet Where rown>= 6 and rown<= 8;

方案3: select id2 from (select ROWNUM as rown, id2 from TEST2 where rownum <= 8) where rown >= 6;

sequence:

在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。
  
  1、Create Sequence
  
  你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
  
  CREATE SEQUENCE emp_sequence
  
  INCREMENT BY 1  -- 每次加几个
  START WITH 1   -- 从1开始计数
  NOMAXVALUE    -- 不设置最大值
  NOCYCLE     -- 一直累加,不循环
  CACHE 10;
  
  一旦定义了emp_sequence,你就可以用CURRVAL,
NEXTVAL
  CURRVAL=返回 sequence的当前值
  NEXTVAL=增加sequence的值,然后返回 sequence 值
  比如:
  emp_sequence.CURRVAL
  emp_sequence.NEXTVAL
  
  可以使用sequence的地方:
  - 不包含子查询、snapshot、VIEW的 SELECT 语句
  -
INSERT语句的子查询中
  - NSERT语句的VALUES中
  - UPDATE 的 SET中
  
  可以看如下例子:
  INSERT INTO emp VALUES
  (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
  
  SELECT empseq.currval FROM DUAL;
  
  但是要注意的是:
  
  - 第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。明白?
  
  - 如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
  
  2、Alter Sequence
  
  你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create .
  
  Alter sequence 的例子
  
  ALTER SEQUENCE emp_sequence
  INCREMENT BY 10
  MAXVALUE 10000
  CYCLE   -- 到10000后从头开始
  NOCACHE ;
  
  影响Sequence的初始化参数:
  
  SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。
  
  可以很简单的Drop Sequence
  
  DROP SEQUENCE order_seq;