易截截图软件、单文件、免安装、纯绿色、仅160KB

通过创建序列来实现ORACLE 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;


相关文档:

操作oracle中的数据文件

收藏于http://dev.yesky.com/296/8090796.shtml
Oracle数据库
中管理表空间和数据文件

 
数据库的三大组成部分:数据文件,控制文件,Redo日志。
表空间分为系统表空间和非系统表空间。
 
SYSTEM表空间是最基本的,必须的,Oracle建议你为用户数据,用户索引,Undo数据段,临时数据段创建单独的表空间 ......

txt文件导入oracle方法

在实际工作中,经常要从数据库中导出数据或往数据库中导入数据。当遇到数据量较大时,就需要导入文本格式的数据,一般导入的数据格式有txt,csv等。以下主要介绍我在实际工作中向oracle中导入数据的两个实例。
1.使用PL/SQL Developer的Text Importer
(1)从菜单中选取Text Importer功能。
    Tool&mda ......

控制文件和REDOLOG同时损坏的ORACLE数据库恢复一例


 控制文件和REDOLOG同时损坏的ORACLE数据库恢复一例 
 
一个客户打电话给我,说他们一个测试数据库起不来了,让我过去看看,
到客户现场发现数据库已经DOWN了,试着启动一下
SQL*Plus: Release 10.2.0.3.0 - Production on Tue Oct 7 10:33:29 2008
Copyright (c) 1982, 2006, Oracle.  All Rig ......

Oracle 解决表锁定的问题

1. 通过v$session,v$locked_object查看谁锁定了资源
     select t1.sid, t1.serial#, t1.username, t1.logon_time
     from v$session t1 , v$locked_object t2
     where t1.sid = t2.session_id
     order by t1.logon_time ......

删除ORACLE FOR windows 的oci.dll错误的解决方法


 删除ORACLE FOR windows 的oci.dll错误的解决方法  
 
删除ORACLE FOR windows 的oci.dll错误的解决方法
今天发现自己台式机上的ORACLE有问题,打算重装一下,发现整个ORACLE目录删除,报OCI.DLL无法删除错误,研究了一下,
发现关掉MSDTC服务就可以了,MSDTC服务在系统中的服务名为
Distributed T ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号