a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 93|回复: 0

[考试辅导] Oracle技术:Oracle里如何建立DUAL表序列

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
项目里经常见到近似下面的语句:# x- c% ?# @2 _
  SELECT SEQ_PROJECT.NEXTVAL FROM DUAL
" @7 ?8 T+ J- p8 Z% O  用于获取序列值。而自己并没有建树DUAL这个表,这个表是谁建树的呢,主若是用来做什么的呢?
7 N4 G& p4 K5 m; M+ P" N' D  下面是我找到的部门诠释:; d. {; Y5 z1 G8 z+ A$ S0 v- j0 s
  DUAL是Oracle与数据字典一路自动建树的一个表,它只有一列:DUMMY,其数据类型为:VARCHAR2(1)。* w5 D: M! k- t6 m- }' N4 ]$ r
  DUAL中只有一行数据:'X'。* v% n, s8 ~: A' w1 q% Q  W! [* B
  DUAL属于SYS模式,但所有用户都可以使用DUAL名称访谒它。用SELECT计较常量表达式、伪列等值时常用该表,因为它只返回一行数据,而使用其它表时可能返回多个数据行。
% E6 c, p/ m: q  在Oracle数据库中建树一个序列,使表的PK挨次生成为表建树序列7 O7 |, M, h" K) g! O8 U
  CREATE SEQUENCE emp_sequence7 M! I* k: s7 ~% Y3 X
  INCREMENT BY 1  -- 每次加几个
+ U' q6 `# N0 J9 l  START WITH 1   -- 年夜1起头计数
5 W5 A9 f$ Z. \& t) X/ M  NOMAXVALUE    -- 不设置最年夜值
. i# N8 y0 |# j. M8 W7 W  NOCYCLE     -- 一向累加,不轮回% f4 I/ e# h' C
  CACHE 100;
- ?6 [  [  l/ E7 }  CREATE SEQUENCE NAD_PV_SEQU
/ w* ?! [# C0 j" Y& I, T  INCREMENT BY 1, W, O4 E' b& x
  START WITH 18074876 J. A, T8 p8 D2 A6 h+ U
  MAXVALUE 9999999999999999997 k5 o) D9 k* k; i& j
  NOCYCLE
( F2 i3 z' ~' [) f: j  CACHE 100;$ N5 r" N% n& f) r( o
  删除序列/ m' U' A) j, a6 a$ q7 G
  DROP SEQUENCE NAD_PV_SEQU;
. l1 X- M- M9 D7 k* K- e! n/ i  为表建树序列( ], D; f# ^. l1 V7 ?1 H
  CREATE SEQUENCE EMPSEQ ... ;
: ?3 I5 I7 b0 d  SELECT empseq.currval FROM DUAL ;$ X" X! K. P: {1 V+ n
  自动插入序列的数值
* w  m! f" T! d& u5 [# v: L  INSERT INTO emp2 c2 Q+ D7 C* {, X1 k7 `
  VALUES (empseq.nextval, 'LEWIS', 'CLERK',/ n. H$ B9 z8 K4 M, r1 @! C
  7902, SYSDATE, 1200, NULL, 20) ;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 10:42 , Processed in 0.965307 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表