如果刚刚打开一个会话 ,例如用PL/SQL developer打开一个command窗口
执行一个
SQL> create sequence seq_test_id start with 1;
Sequence created
SQL> select seq_test_id.currval from dual;
select seq_test_id.currval from dual
ORA-08002: sequence SEQ_TEST_ID.CURRVAL is not yet defined in this session
这时会告诉你 sequence SEQ_TEST_ID.CURRVAL is not yet defined in this session
显然SEQ_TEST_ID当前是存在的,而其sequence对象应该也和session无关.
如何解决这个问题 呢 ??
只需要执行
SQL> select seq_test_id.nextval from dual;
NEXTVAL
----------
1
SQL> select seq_test_id.currval from dual;
CURRVAL
----------
1
原来在查看sequence对象的currval值的时候,必须先要调用它的nextval,实在是没道理的很把,可oracle就是如此??
oracle乐于无端增加学习成本阿 /呵呵
只要新打开一个command的窗口,也就会有类似问题,所以记住这个特性就够啦
oracle的错误码也有官方表达
ORA-08002: sequence string.CURRVAL is not yet defined in this session
Cause: sequence CURRVAL has been selected before sequence NEXTVAL
Action: select NEXTVAL from the sequence before selecting CURRVAL
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1446746
分享到:
相关推荐
其中,Oracle 9i/10g 的应用服务器是一个关键组件,它提供了Web服务、门户、身份验证等功能。 - **产品系列**: - **Oracle Standard Edition**:适合中小企业使用,提供基本的数据库功能。 - **Oracle ...
Oracle 19c和20c是Oracle数据库的两个重要版本,它们引入了许多新特性以提升性能、可扩展性和易用性。以下是这些版本的主要新特性详解: **Oracle 18c新特性** 1. **高效性能:右向增长索引分裂竞争优化** - 右向...
- 在Oracle中,NULL与其他任何值进行比较都会得到未知结果。 **空值的生成:** - 直接赋值:`column_name IS NULL`。 - 默认值:在创建表时指定某列的默认值为NULL。 **空值的测试:** - 使用`IS NULL`和`IS NOT ...
### Oracle数据库中常用的数据类型 在Oracle数据库中,数据类型的选择对于存储效率和查询性能至关...通过以上内容的学习,可以对Oracle数据库有一个全面而深入的理解,为高效地管理和利用数据库资源打下坚实的基础。
在Oracle数据库中,序列(SEQUENCE)是一种特殊的数据类型,用于生成唯一且递增的整数值,常用于主键生成或其他需要唯一标识的场景。然而,有时会出现序列跳号(skip sequence numbers)的情况,即序列值没有按照...
"oracle-use.rar_Oracle drop use_oracle"这个压缩包包含了与Oracle数据库使用相关的多个文档,包括查询、操作、PL/SQL语法、数据导入导出、连接配置以及备份恢复等方面的知识。 首先,我们来关注"插入数据"这一...
- **Oracle 11g 题库之 051-1**:这个标题表明这是一个关于Oracle Database 11g的题库,特别针对的是SQL基础知识部分(SQL Fundamentals I),并且是该题库系列中的一个子集。 #### 描述解读 - **这是oracle 11g ...
在Oracle数据库中,序列(Sequence)是一种特殊的数据对象,它能自动地生成唯一的整数,通常用于为主键字段提供连续的标识符。序列的使用极大地简化了数据插入过程,特别是对于那些需要保持唯一性的整数字段,如员工...
- 外键(Foreign Key):参照另一个表或同一表的主键或唯一键,确保数据的引用完整性,外键的值需与主键匹配或为空。 2. **数据库对象** - 表(Table):存储数据的基本结构。 - 视图(View):虚拟表,基于一个...
在Oracle数据库系统中,"自增长"和"临时表"是两个重要的概念,它们在数据库管理和数据处理中扮演着关键角色。自增长字段通常用于自动为新插入的记录生成唯一的标识符,而临时表则是在特定会话或事务中存储临时数据的...
- 允许用户连接到数据库并启动一个新的会话。 - 这是所有用户默认拥有的基本权限之一。 2. **CREATE TABLE** - 允许用户在指定模式下创建新表。 - 创建表时,用户必须具有该模式下的空间分配权限。 3. **...
根据提供的文档信息,以下是从标题、描述以及部分文档内容中提炼出的相关Oracle数据库的基础知识点。 ### Oracle数据库基础知识 #### 1.1 产品概述 **1.1.1 产品简介** Oracle数据库是由美国甲骨文公司开发的一...
Oracle 19c和20c是Oracle数据库的两个重要版本,它们引入了许多创新特性以提升性能、可扩展性和易用性。以下是这些版本的新特性详细解析: **Oracle 18c新特性** 1. **高效性能:右向增长索引分裂竞争优化** - 右...
- **管理工具 Oracle 企业管理器(OEM)**:提供了一个统一的界面来管理多个 Oracle 数据库实例。 - **查询工具**: - **SQL*Plus**:最常用的工具之一,用于执行 SQL 命令和 PL/SQL 块。 - **iSQL*Plus**:基于 Web...
Oracle通过自动检测并解除其中一个会话的锁来解决死锁问题。 **示例**: 1. 会话1锁定表T1中的记录,并尝试更新表T2中的记录。 2. 同时,会话2锁定表T2中的记录,并尝试更新表T1中的记录。 - 结果:会话1和会话2都...
需要注意的是,`CURRVAL`只能在一个会话内有效,即在同一个会话中,`CURRVAL`返回的值只对最近一次调用`NEXTVAL`的序列有效。这意味着如果你在同一事务中多次插入数据,那么每次插入后都需要分别查询`CURRVAL`来获取...
- Session:会话是用户与数据库之间的交互实例,每个会话都有自己的内存结构和状态。 - Process:Oracle进程包括用户进程、服务器进程和后台进程,它们协同工作以支持数据库操作。 5. 自带的Application Server -...
- `CREATE VIEW`: 创建用户自己的视图,基于一个或多个表的查询结果。 3. **删除权限**: - `DROP ANY CLUSTER`: 删除任何用户的簇。 - `DROP ANY INDEX`: 删除任何用户的索引。 - `DROP ANY PROCEDURE`: 删除...
根据提供的文件信息,我们可以归纳出一系列与Oracle数据库维护相关的SQL语句知识点。这些知识点主要涵盖了查询当前会话信息、查询特定会话的操作系统ID、获取指定会话正在执行的SQL语句、根据对象查找相关会话信息、...
在用户连接数据库并创建会话时自动分配,保存每个与Oracle数据库连接的用户进程所需的信息。PGA为非共享区,当用户会话结束时,PGA会被释放。 - **进程** - **用户进程**:客户端应用程序与Oracle服务器之间通信的...