oracle序列 闲时练手
来源:互联网 发布:homotopy算法 编辑:程序博客网 时间:2024/05/22 10:23
闲时练手。
序列语法:
CREATE SEQUENCE sequence_name
[ START WITH start_num] -- default:1
[ INCREMENT BY increment_num] -- default:1
[{MAXVALUE maximum_num | NOMAXVALUE }] -- default:NIMINVALUE
[{MINVALUE minimum_num | NOMINVALUE}] -- default:NOMINVALUE
[{CYCLE | NOCYCLE}] -- default: NOCYCLE
[{CACHE cache_num | NOCACHE}] -- default: 缓存 20 个数
[{ORDER | NOORDER}] -- default: NOORDER
-- 删除已存在的序列S
DROP SEQUENCE s
/
-- 创建序列 s, 从1开始,增量为1
CREATE SEQUENCE s START WITH 1 INCREMENT BY 1
/
序列中包含两个伪列:currval, nextval
练手时发现问题,记录如下:
问题一:调用序列当前值时报错
调用语句:SELECT s.CURRVAL FROM dual
ORA-08002: sequence S.CURRVAL is not yet defined in this session
原因:序列未初始化,在检索序列的当前位置前,必须通过检索序列的下一个值对其初始化。
即:SELECT s.NEXTVAL FROM dual, 之后在调用 s.CURRVAL 就不会报错
问题二 SEQUENCE NAME 的大小写问题
执行一下语句结果为空:
SELECT * FROM all_sequences WHERE sequence_name = 's' -- result is null
但是s已经被创建,
sequence name 存到数据库时自动将名字改为了大写的,所以在where 语句中要用大写S,才能检索出结果:
SQL> SELECT * FROM user_sequences WHERE sequence_name = 'S';
SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY CYCLE_FLAG ORDER_FLAG CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ ---------- ---------- ---------- -----------
S 1 1E27 1 N N 20 21
- oracle序列 闲时练手
- oracle经典查询练手
- Oracle 查询练手
- acm练手 单调递增最长子序列
- 闲时随想
- 闲时看看
- 闲时总结
- 闲时看看
- 练手
- 练手
- 练手~~~
- 练手
- ORACLE SQL:经典查询练手第一篇
- ORACLE SQL:经典查询练手第二篇
- ORACLE SQL:经典查询练手第三篇
- ORACLE SQL:经典查询练手第四篇
- ORACLE SQL:经典查询练手第五篇
- ORACLE SQL:经典查询练手第一篇
- C++期末作业
- C# 实例 -------单例模式
- dd配置
- 如何建索引
- title1
- oracle序列 闲时练手
- t2
- Deutschland(德国之歌)
- Java - Generate Random Data
- 第二章移动通信系统概述
- TeamCenter开发系统设计系列之一
- Xcode如何为iPhone项目建立多个Target
- 【淘宝SEO技巧】淘宝宝贝标题关键字优化
- poj 2299 1804 2085 求逆序对