1. 可以使用sequence的currval和nextval的地方
- select语句中的select部分,这个select语句是指不包含在子查询,物化视图和视图中的。
- insert语句中的子查询的select部分。
- insert语句中的values子句。
- update语句中的set子句。
2. 使用sequence的限制,不能在以下情况使用
- delete,select,或者update语句中的子查询
- 视图或物化视图中的查询
- 含有distinct的select语句
- 含有group by或者order by的select语句
- 用union,intersect或minus联合的select语句
- select语句中的where子句
- create table或alter table语句中的default部分
- check约束的条件部分
3. sequence的使用
- 在你的会话(session)中,使用currval前必须用nextval来初始化sequence,否则出错:ORA-08002: sequence <sequence_name> is not yet defined in this session