怎么查oracle中序列,oracle怎么查看序列

Oracle 怎样查询所有自增的序列名

Oracle 怎样查询所有自增的序列名

镇江网站建设公司创新互联,镇江网站设计制作,有大型网站制作公司丰富经验。已为镇江上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的镇江做网站的公司定做!

你如果指的是需要自增值的字段,你需要创建sequence。想要查询自增值, 可以在Sqlplus下运行:

select seq1.nextval from dual; (第一次)

select seq1.currval from dual; (当前值)

使用insert语句时:insert into 表 (需要使用自增值的字段,其它字段1,其他字段2) values (seq1.nextval, 其它字段1所给值,其它字段2所给值),然后commit。

oracle 创建的序列在哪里?

在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中如何查询序列

你的问题很笼统,你是想知道序列的当前值吗?select 序列.nextval from dual就可以了,这个查出来的就是当前序列下一个可以使用的值,序列每读一次都会加1的,比如这次的序列.nextval是18,你下次使用的时候就是19了

oracle如何查询当前用户有哪些序列?

查询当前用户的

1select * from user_sequences

查询所有的

1select * from all_sequences

其中sequence_name就是序列的名字

怎么查看oracle创建的序列?

执行如下sql:

select * from user_sequences;

如果需要查看某个特定的序列,如下:

select * from user_sequences  where  sequence_name like '%T_SELL_BRAND%';

select * from user_sequences  where  sequence_name='SEQ_T_SELL_BRAND';

注意:序列名区分大小写。

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。

具体步骤如下:/导致这种情况的原因主要是……

oracle 如何判断一个序列是否存在?

你先上user_Sequences

视图中查询你想要创建的序列信息zhidao,有则内不建,没有则建。

SELECT

count(*)

FROM

All_Sequences

where

Sequences_name='大写序列名';

看count(*)

判断是容否操作。

----

以上,希望对你有所帮助。


文章标题:怎么查oracle中序列,oracle怎么查看序列
本文网址:http://abwzjs.com/article/dsgpojh.html