怎么查看oracle创建的序列

怎么查看oracle创建的序列,第1张

执行如下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';

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

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

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

1 oracle的逻辑是,同一会话中,必须先通过NEXTVAL后,才能获取CURRVAL值

2 关于跳号,应该是cache的作用

你可以在SQL窗口打出sequence名称,右键-> 属性,或右键->查看,来查看SEQ信息

3 oracle的逻辑sequence是不会rollback的,如果想要改变start值(或当前值),必须 drop sequence 再 re-create

给你个说明:

CREATE SEQUENCE test_sequence

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

CACHE 10;

一旦定义了test_sequence,你就可以用CURRVAL,NEXTVAL

CURRVAL=返回 sequence的当前值(第一查询时会报未初始化,调用一次NEXTVAL后可用)

NEXTVAL=增加sequence的值,然后返回 sequence 值

比如:

test_sequenceCURRVAL

test_sequenceNEXTVAL

可以使用sequence的地方:

- 不包含子查询、snapshot、VIEW的 SELECT 语句

- INSERT语句的子查询中

- NSERT语句的VALUES中

- UPDATE 的 SET中

创建和删除序列

例1:创建序列:

CREATE SEQUENCE ABC INCREMENT BY 1 START WITH 10 MAXVALUE 9999999 NOCYCLE NOCACHE;

执行结果:

序列已创建。

例2:删除序列:

drop SEQUENCE ABC;

执行结果: 序列已删除

注意: *** 作者必须是序列的拥有者、或拥有drop该sequence权限

伪列--->nextval、currval

select 序列名currval from dual;得到序列的“当前值”

select 序列名nextval from dual;得到序列数值中下一个值

向数据库中插入时、如下使用:

insert into 表1 values(序列名nextval,'tom');

修改序列--->

alter sequence +序列名

select seq_testnextval into v_sv from dual;

查询序列当前值、查询序列下一个值,都不能直接写序列nextval,而是写成SQL表达式的形式方可执行

select

your_seq_namecurrval

from

dual;

可以得到当前值,且不会增加序列。

不过需要注意的是如果该序列是第一次使用,是不能用currval的,因为还没初始,必须至少用nextval一次后才能用currval。

以上就是关于怎么查看oracle创建的序列全部的内容,包括:怎么查看oracle创建的序列、oracle序列、Oracle序列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9533299.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存