a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 89|回复: 0

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

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
项目里经常见到近似下面的语句:, W. p& I4 P; J8 h  Q2 a; F
  SELECT SEQ_PROJECT.NEXTVAL FROM DUAL  @" o& @" D8 `* N% W* _2 P
  用于获取序列值。而自己并没有建树DUAL这个表,这个表是谁建树的呢,主若是用来做什么的呢?
* d3 a' d7 n. g, a5 Y  下面是我找到的部门诠释:2 y. G: V' j; U
  DUAL是Oracle与数据字典一路自动建树的一个表,它只有一列:DUMMY,其数据类型为:VARCHAR2(1)。; b' t% V2 T2 ]4 d' S. ^! \% y
  DUAL中只有一行数据:'X'。6 E. w  D! k7 l2 k$ r
  DUAL属于SYS模式,但所有用户都可以使用DUAL名称访谒它。用SELECT计较常量表达式、伪列等值时常用该表,因为它只返回一行数据,而使用其它表时可能返回多个数据行。% B+ W( r. a9 v" H# T" \. b
  在Oracle数据库中建树一个序列,使表的PK挨次生成为表建树序列% _9 Z" [4 }2 ?* U% I2 E# b2 Q+ Y! ]
  CREATE SEQUENCE emp_sequence  Z4 `6 p* s" _+ }* Z  F
  INCREMENT BY 1  -- 每次加几个5 n( S9 v/ b) {
  START WITH 1   -- 年夜1起头计数3 C  ~, R3 X/ [! x( ^+ e
  NOMAXVALUE    -- 不设置最年夜值3 F' |* I8 I" I0 u9 ^; y
  NOCYCLE     -- 一向累加,不轮回1 n/ k7 W: l" o$ J* d. j, B
  CACHE 100;
2 w! z  [/ Z8 S- C, E" K  CREATE SEQUENCE NAD_PV_SEQU! B. r( C7 b2 k8 C5 J
  INCREMENT BY 1
  k; {- `6 K+ q* V# y2 J( z! Y  START WITH 1807487
) t- I. j7 E, |  @" E  MAXVALUE 999999999999999999; T! R8 E( i2 q+ F( d/ \: v" `
  NOCYCLE
9 L( |- M2 x% ?  CACHE 100;
8 b( |* K6 t" s9 a  删除序列
" P! J5 k  a( ~6 O9 i' z5 z8 r' L  DROP SEQUENCE NAD_PV_SEQU;; C3 {1 t3 g/ Z  m
  为表建树序列2 z+ e# w/ _% k* H! R
  CREATE SEQUENCE EMPSEQ ... ;
. u' x+ C, }( |% v& n$ k7 Z& y  SELECT empseq.currval FROM DUAL ;& c- S; c+ p# E  |2 c
  自动插入序列的数值1 v8 c# z+ f0 T0 H
  INSERT INTO emp( R7 `0 V% A0 Y
  VALUES (empseq.nextval, 'LEWIS', 'CLERK',# Z' \  n) P  f" b# \
  7902, SYSDATE, 1200, NULL, 20) ;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 23:15 , Processed in 0.166787 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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