Oracle中Sequence使用的限制

在使用Oracle序列的currval和nextval时的限制,在delete,select,update语句的子查询中不能使用sequence的值

在使用oracle序列的currval和nextval时的限制

创建一个序列

create sequence test_seq

minvalue 1

maxvalue 10000000

start with 1

increment by 1

cache 20;

在delete,select,update语句的子查询中不能使用sequence的值

SQL>  delete from test_jy where test_id

delete from test_jy where test_id

ORA-02287: 此处不允许序号

SQL>  select * from test_jy where test_id

select * from test_jy where test_id

ORA-02287: 此处不允许序号

SQL>  update test_jy set test_id=0 where test_id

update test_jy set test_id=0 where test_id

ORA-02287: 此处不允许序号

在查询视图或物化视图时

SQL> select a.* from test_v a where a.userid

select a.* from test_v a where a.userid

ORA-02287: 此处不允许序号

带有distinct操作符的select语句不能使用

SQL> select distinct a.*,test_seq.currval from test_v a ;

select distinct a.*,test_seq.currval from test_v a

ORA-02287: 此处不允许序号

有group by,order by操作的select语句不能使用

SQL>  select  test_jy.*,test_seq.currval from test_jy group by test_jy.test_id;

select  test_jy.*,test_seq.currval from test_jy group by test_jy.test_id

ORA-02287: 此处不允许序号

SQL>  select  test_jy.*,test_seq.currval from test_jy order by test_jy.test_id;

select  test_jy.*,test_seq.currval from test_jy order by test_jy.test_id

ORA-02287: 此处不允许序号

有UNION, INTERSECT, MINUS操作符的语句不能使用

SQL> select  test_jy.*,test_seq.currval from test_jy where test_id=1

2  union

3  select  test_jy.*,test_seq.currval from test_jy where test_id=2;

select  test_jy.*,test_seq.currval from test_jy where test_id=1

union

select  test_jy.*,test_seq.currval from test_jy where test_id=2

ORA-02287: 此处不允许序号

SQL> select  test_jy.*,test_seq.currval from test_jy where test_id=1

2  intersect

3  select  test_jy.*,test_seq.currval from test_jy where test_id=2;

select  test_jy.*,test_seq.currval from test_jy where test_id=1

intersect

select  test_jy.*,test_seq.currval from test_jy where test_id=2

ORA-02287: 此处不允许序号

SQL> select  test_jy.*,test_seq.currval from test_jy where test_id=1

2  minus

3  select  test_jy.*,test_seq.currval from test_jy where test_id=2;

select  test_jy.*,test_seq.currval from test_jy where test_id=1

minus

select  test_jy.*,test_seq.currval from test_jy where test_id=2

ORA-02287: 此处不允许序号

在select语句中的where子句中

SQL> select  test_jy.* from test_jy where test_id

select  test_jy.* from test_jy where test_id

ORA-02287: 此处不允许序号

在create table或alter table语句的中default值是不能使用sequence

SQL> alter table test_jy modify test_id number(20) default test_seq.currval;

alter table test_jy modify test_id number(20) default test_seq.currval

ORA-00984: 列在此处不允许

还有就在check约束中不能使用

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1904762.html

(0)
上一篇 2025年2月22日 15:38:41
下一篇 2025年2月22日 15:38:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Oracle和MySQL分别生成sequence序列

    有时候在往数据库中插入数据的时候,如果ID值是32位的UUID, 而自己随便写个字符又不合适,这时就要用到函数来产生一个序列值 Or 有时候在往数据库中插入数据的时候,如果id值是32位的uuid, 而自己随便写个字符又不合适,这时就要用到…

    数据库 2025年2月23日
    100
  • Oracle Management Server 启动和配置

    按照文档登陆Oracle Management Server时,第一次登陆成功,关机后再次登陆可能会出现:域名解析错误或登陆被否决错误。错误原因 按照文档登陆oracle  management server时,第一次登陆成功,关机后再次登…

    数据库 2025年2月23日
    100
  • Oracle 10.2.0.4 升级到 10.2.0.5

    某发票开发测试库升级 升级前准备,此次升级只是很对测试环境数据库升级,所以没有事先一个月来获取系统,数据库的统计信息,机器 某发票开发测试库升级 升级前准备,此次升级只是很对测试环境数据库升级,所以没有事先一个月来获取系统,数据库的统计信息…

    数据库 2025年2月23日
    100
  • Oracle 快照(snapshot) 管理

    —-手工创建Oracle 快照 BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; / —删除快照 具体快照信息可以查看视图 D —-手工创建o…

    数据库 2025年2月23日
    100
  • EM资料库重建 手动删除资料库

    由于原来的数据库已经被删除,再重做oem时需要用到监听,此时直接重做报如下错误: 由于原来的数据库已经被删除,再重做oem时需要用到监听,此时直接重做报如下错误: [oracle@localhost ~]$ emca -repos recr…

    数据库 2025年2月23日
    100
  • Oracle数据库学习札记

    记下有关Oracle数据库的一些重要知识,以供备查! 一.文件系统和作用执行文件:Oracle系统的核心,数据文件只能被Oracle处理程序所识 记下有关Oracle数据库的一些重要知识,以供备查! 一.文件系统和作用执行文件:Oracle…

    数据库 2025年2月23日
    100
  • Oracle修改提示符方法

    Oracle修改提示符方法sqlplus启动的时候会读取glogin.sql脚本,在$Oracle_HOME/sqlplus/admin目录中,写在里面就可以了。给你个例 Oracle修改提示符方法 sqlplus启动的时候会读取glogi…

    数据库 2025年2月23日
    100
  • Oracle技术平台助力数字化城市管理进程

    在北京市东城区政府、北京图盟科技、数字政通、北京移动各方紧密合作下,展开了ldquo;城管通rdquo;应用系统的研发工作。ldquo 进入论坛随着城市现代化建设进程的加快,城市管理滞后几乎成为各个国家、各个城市的共性问题。北京市东城区与全…

    数据库 2025年2月23日
    100
  • MySQL修复坏表的方法

    有的时候因为掉电或者其他原因导致数据库损坏,我们可以使用MySQL自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;例 有的时候因为掉电或者其他原因导致数据库损坏,我们可以使用MySQL自带的mysqlcheck命令来快…

    数据库 2025年2月23日
    100
  • MySQL负载过高的优化

    这样,慢语句就被记录在日志文件中了.tail -f /usr/local/mysql/data/log_slow_queries.log 查看日志.四个参数Query_time: 0 Lock 公司网站刚改完版,优化了数据库结构,使用的me…

    数据库 2025年2月23日
    100

发表回复

登录后才能评论