a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

Oracle提供兩種使用嵌套表

發(fā)布時(shí)間:  2012/9/16 15:48:11

把Oracle嵌套表的其他功能仔細(xì)看了看并做了個(gè)簡(jiǎn)單整理。

Oracle提供兩種使用嵌套表的方法:
1. PL/SQL代碼中作為擴(kuò)展PL/SQL語(yǔ)言;(這部分內(nèi)容就是上邊所說Oracle內(nèi)存表是oracle嵌套表的部分功能)
2. 作為物理存儲(chǔ)機(jī)制,以持久地存儲(chǔ)集合。

*/

--創(chuàng)建測(cè)試表:

CREATE TABLE dept-
 

  (deptno NUMBER(2) PRIMARY KEY,
   dname VARCHAR2(14),
   loc VARCHAR2(13)
  );
  
CREATE TABLE emp
  (empno NUMBER(4) PRIMARY KEY,
   ename VARCHAR2(10),
   job VARCHAR2(9),
   mgr NUMBER(4) REFERENCES emp,
   hiredate DATE,
   sal NUMBER(7,2),
   comm NUMBER(7,2),
   deptno NUMBER(2) REFERENCES dept
  );
  
INSERT INTO dept SELECT * FROM scott.dept;
INSERT INTO emp SELECT * FROM scott.emp;

--創(chuàng)建type

CREATE OR REPLACE TYPE emp_type AS OBJECT
  (empno NUMBER(4),
   ename VARCHAR2(10),
   job VARCHAR2(9),
   mgr NUMBER(4),
   hiredate DATE,
   sal NUMBER(7,2),
   comm NUMBER(7,2)
  );
  
CREATE OR REPLACE TYPE emp_tab_type AS TABLE OF emp_type;

--使用嵌套表

CREATE TABLE dept_and_emp
  (deptno NUMBER(2) PRIMARY KEY,
   dname VARCHAR2(14),
   loc VARCHAR2(13),
   emps emp_tab_type
  )
  NESTED TABLE emps STORE AS emps_nest;

--可以在嵌套表上增加約束(這里我們先不執(zhí)行此步驟,等做完下一步測(cè)試我們?cè)賱?chuàng)建約束)
--ALTER TABLE emps_nt ADD CONSTRAINT emps_empno_unique
--嵌套表不支持參照完整性約束,不能參考任何其他表甚至自己
--給嵌套表增加數(shù)據(jù),我們看看這兩種方式的結(jié)果有何不同
方式1:INSERT INTO
  dept_and_emp
  SELECT dept.*,
   CAST(
  MULTISET( SELECT empno, ename, job, mgr, hiredate, sal,
  comm
   FROM
  emp
   WHERE emp.deptno
  = dept.deptno ) AS emp_tab_type )
   FROM
  dept;
--Oracle同樣提供方法去掉集合的嵌套,像關(guān)系型表一樣處理(能夠?qū)MPS列當(dāng)作一個(gè)表,并自然連接且不需要連接條件):
SELECT d.deptno, d.dname, emp.* FROM dept_and_emp D, TABLE(d.emps) emp;
--這里執(zhí)行看到結(jié)果是14條數(shù)據(jù)

delete from dept_and_emp;

方式2:INSERT INTO dept_and_emp
SELECT dept.*, CAST(MULTISET( SELECT empno, ename, job, mgr, hiredate, sal, comm
  FROM
  emp,dept
   WHERE emp.deptno
  = dept.deptno ) AS emp_tab_type ) from dept;

SELECT d.deptno, d.dname, emp.* FROM dept_and_emp D, TABLE(d.emps) emp;
--這里執(zhí)行看到結(jié)果是56條數(shù)據(jù),顯然是錯(cuò)誤的

--第一個(gè)是按照where等連接條件符合的某一個(gè)dept的emp表的數(shù)據(jù)作為一個(gè)集合存儲(chǔ),而第二個(gè)沒有任何關(guān)聯(lián)條件,就是把所有emp的數(shù)據(jù)
--全部作為一個(gè)dept的數(shù)據(jù)存儲(chǔ),這個(gè)寫法顯然是錯(cuò)誤的,如果我們把剛才講的約束給嵌套表加上,就可以起到防止這種錯(cuò)誤的功效了。

--增加約束再執(zhí)行我們上邊的第二個(gè)insert語(yǔ)句將會(huì)報(bào)錯(cuò)
--我們按照上邊第一個(gè)insert語(yǔ)句插入數(shù)據(jù),繼續(xù)我們下邊的測(cè)試。

--按照“每行實(shí)際是一張表”的思想來更新:
UPDATE TABLE( SELECT emps FROM dept_and_emp WHERE deptno = 10) SET comm = 100;

--插入與刪除的語(yǔ)法:
  INSERT INTO TABLE(SELECT emps FROM dept_and_emp WHERE deptno=10)
  VALUES (1234,'NewEmp','Clerk',7782,SYSDATE,1200,NULL);
  
  DELETE FROM TABLE(SELECT emps FROM dept_and_emp WHERE deptno=20)
  WHERE ename='SCOTT';

--一般而言,必須總是連接,而不能單獨(dú)查詢嵌套表(如emp_nest)中的數(shù)據(jù),但是如果確實(shí)需要,是可以的。
--hint NESTED_TABLE_GET_REFS被用于EXP和IMP處理嵌套表。

  SELECT /*+NESTED_TABLE_GET_REFS+*/ NESTED_TABLE_ID, SYS_NC_ROWINFO$ FROM emps_nest;

--而察看EMPS_NEST的結(jié)構(gòu)看不到NESTED_TABLE_ID,SYS_NC_ROWINFO$兩列。對(duì)父表DEPT_AND_EMP來說NESTED_TABLE_ID是一個(gè)外鍵。
--使用這個(gè)hint就可以直接操作嵌套表了:
  UPDATE /*+NESTED_TABLE_GET_REFS+*/ emps_nest SET ename=INITCAP(ename);
  
--嵌套表的存儲(chǔ):
--上例中,現(xiàn)實(shí)產(chǎn)生了兩張表:
/*
  DEPT_AND_EMP
  (deptnob NUMBER(2),
  dname VARCHAR2(14),
  loc VARCHAR2(13),
  SYS_NC0000400005$,
RAW(16))
  
  EMPS_NEST
  (SYS_NC_ROWINFO$,
  NESTED_TABLE_ID,
RAW(16),
  empno NUMBER(4),
  ename VARCHAR2(10),
  job VARCHAR2(9),
  mgr NUMBER(4),
  hiredate DATE,
  sal NUMBER(7,2),
  comm NUMBER(7,2)) 
*/ 
--默認(rèn)情況下,每個(gè)嵌套表列都產(chǎn)生一個(gè)額外的RAW(16)隱藏列,并在其上創(chuàng)建了唯一約束,用以指向嵌套表。而嵌套表中有兩個(gè)
--隱藏列:SYS_NC_ROWINFO$是作為一個(gè)對(duì)象返回所有標(biāo)量元素的一個(gè)偽列;另一個(gè)NESTED_TABLE_ID的外鍵回指向父表。
--可以看到真實(shí)代碼:
/*
  CREATE TABLE DEPT_AND_EMP
  (DEPTNO NUMBER(2,0),
   DNAME VARCHAR2(14),
   LOC VARCHAR2(13),
   EMPS EMP_TAB_TYPE)
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  LOGGING STORAGE(INITIAL 131072 NEXT 131072
  MINEXTENTS 1 MAXEXTENTS 4096
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUP 1
  BUFFER_POOL DEFAULT)
  TABLESPACE USER
  NESTED TABLE EMPS
  STORE AS EMPS_NEST
  RETURN BY VALUE;
  
  RETURN BY VALUE用來描述嵌套表如何返回到客戶應(yīng)用程序中。
  NESTED_TABLE_ID列必須是索引的,那么較好的解決辦法就是使用IOT存儲(chǔ)嵌套表。
  CREATE TABLE DEPT_AND_EMP
  (DEPTNO NUMBER(2,0),
   DNAME VARCHAR2(14),
   LOC VARCHAR2(13),
   EMPS EMP_TAB_TYPE)
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  LOGGING STORAGE(INITIAL 131072 NEXT 131072
  MINEXTENTS 1 MAXEXTENTS 4096
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUP 1
  BUFFER_POOL DEFAULT) TABLESPACE USER
  NESTED TABLE EMPS
  STORE AS EMPS_NEST
  ((empno NOT NULL,
UNIQUE(empno),
PRIMARY KEY(nested_table_id,empno))
  ORGANIZATION
  INDEX COMPRESS 1)
  RETURN BY VALUE;
  
  這樣與最初默認(rèn)的嵌套表相比,使用了較少的存儲(chǔ)空間并有最需要的索引。
  不使用嵌套表作為永久存儲(chǔ)機(jī)制的原因
  1.增加了RAW(16)列的額外開銷,父表和子表都將增加這個(gè)額外的列;
  2.當(dāng)通常已經(jīng)有唯一約束時(shí),父表上的唯一約束是額外開銷;
  3.沒有使用不支持的結(jié)構(gòu)(NESTED_TABLE_GET_REFS),嵌套表不容易使用。
  一般推薦在編程結(jié)構(gòu)和視圖中使用嵌套表。如果要使用嵌套表作為存儲(chǔ)機(jī)制,確保嵌套表是IOT,以避免NESTED_TABLE_ID和嵌套表本身中索引的額外開銷。


本文出自:億恩科技【www.ibaoshan.net】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線

     
     
    乱世儿女国语免费观看| 亚洲综合色区另类小说| 麻豆精品传媒一二三区| 公愆憩止痒玉米地使用方法| 亚洲色偷拍另类无码专区| 日韩丰满少妇无码内射| 久久精品国产亚洲7777| 放在里面边顶边吃饭H| 在办公室里揉弄小雪好爽| 挺进去岳就不挣扎了在线观看| 美丽人妻被按摩中出中文字幕 | 天堂在/线资源中文在线BT| 久久夜色噜噜噜亚洲AV| 国产成人亚洲精品无码高潮| 18黑白丝水手服自慰喷水网站| 香港三香港日本三级在线理论| 欧美黑人性暴力猛交喷水黑人巨大| 果冻传媒一区二区天美传媒| 被粗大噗嗤噗嗤进出灌满浓浆| 亚洲熟妇无码八AV在线播放| 手在线播放波多野结衣| 免费看国产曰批40分钟| 国产小呦泬泬99精品| YINLUAN小镇公交车尺寸| 亚洲精品中文字幕久久久久下载| 日韩无套内射视频6| 巨大欧美黑人XXXXBBBB| 国产免费不卡午夜福利在线 | 亚洲男同GV在线观看| 色综合久久久无码中文字幕波多| 美女露0裸体无挡动态视频| 国产无套内射又大又猛又粗又爽| ZZIJZZIJ亚洲日本少妇J| 亚洲欧美日韩中文字幕在线一区| 爽到高潮无码视频在线观看| 免费无码又爽又刺激高潮软件 | 天堂资源中文WWW| 年轻丰满的继牳3免费看| 和儿媳妇在一起最幸福的句子| 超碰人人透人人爽人人看| 永久免费啪啪的网站入口| 午夜精品久久久久久中宇| 人妻插B视频一区二区三区| 久久九九精品99国产精品| 国产精品VA无码免费麻豆| AV无码AV不卡一区二区| 亚洲精品无码鲁网中文电影| 天堂√最新版中文在线天堂| 欧美黑人XXXX高潮猛交| 精品高潮呻吟AV久久无码| 国产成人A区在线观看| Chinese老女人老熟妇69| 亚洲色大成网站WWW尤物| 无码OL丝袜高跟秘书在线观看不| 欧美颜射内射中出口爆在线| 久久人妻AV中文字幕| 国产一产二产三精华液| 大炕上的肉体交换农村乱睡| 44分钟欧美人与禽交片MP4| 亚洲精品成人AV| 玩弄三个高大的熟妇赶尸艳谈| 欧美日韩在线亚洲一区蜜芽| 久久久久女人精品毛片| 国产日韩综合一区在线观看 | 驯服人妻HD中字日本| 人人妻人人添人人爽欧美一区| 久久午夜夜伦鲁鲁片免费无码| 国产一区二区无码蜜芽精品| 非洲黑人最猛性XXXX交| BGMBGMBGM欧美老妇| 一区二区国产高清视频在线| 亚洲AV喷水无码XXX| 少妇自慰喷AV免费网站| 欧美香蕉爽爽人人爽| 久久综合狠狠色综合伊人| 和人妻隔着帘子按摩中字| 国产成人A∨激情视频厨房| XXXXX性BBBBB欧美| 幼儿幼儿幼儿N0UUUUU精品| 亚洲А∨天堂男人色无码| 婷婷久久综合九色综合97最多收| 人妻丰满熟妇AV无码| 蜜桃91人妻在线视频| 精品人妻在线一区二区三区 | 免费观看电视在线高清| 精品免费久久久久久久| 国产久9视频这里只有精品| 成人做爰高潮A片免费视频| 24小时日本高清在线播放| 亚洲欧洲日产国码无码久久99| 午夜福利片手机在线播放| 色噜噜狠狠色综合久色AⅤ网视频 色噜噜狠狠色综合久色AⅤ网黑 | 国产精品爽爽ⅴa在线观看| 出租房里的交互高康张睿| JAPANESE日本护士XXX| 正在播放重口老熟女露脸| 亚洲人成色77777在线观看大 | 开心亚洲五月丁香五月| 精产国品一二三产区区别在哪儿| 国产精品国产自线拍免费| 大J8黑人W巨大888A片| JAZZJAZZJAZZ日本| 2019在线人妻中文字幕| 野花高清免费观看完整视频中文版| 亚洲AV永久无码区成人网站| 无人区乱码一区二区三区| 少妇饥渴偷公乱第一章全文| 日本边做边吃奶AⅤ视频免费| 欧美精品九九99久久在免费线| 麻豆乱码1区2区新区| 久久久久成人片免费观看 | 久久精品国产精品亚洲蜜月| 国自产拍偷拍精品啪啪模特| 国产精品亚洲综合网熟女| 国产AV无码专区亚洲A∨毛片| 成人免费看WWW网址入口| А√天堂网WWW最新版地址| 999精品国产人妻无码系列| 中国熟妇人妻XXXXX| 一本久道视频无线视频| 亚洲色欲色欲色欲WWW| 亚洲精品无码成人片久久不卡| 亚洲AV无码片在线观看| 性色A∨人人爽网站HD| 无码熟妇人妻AV在线一| 私人影院播放器大全| 色欲av无码爆乳亚洲区一二| 日韩人妻无码免费视频一区二区三| 人妻一本久道久久综合久久鬼色| 欧美性猛交XXXX乱大交蜜桃| 欧美黑人乱猛交xX 乂500| 女人被爽到呻吟GIF动态图| 免费精品99久久国产综合精品| 乱码一二三乱码又大又粗| 久久亚洲色WWW成人男男| 久久精品亚洲精品国产色婷| 久久WWW免费人成_看片| 精品无码中文字幕在线| 精品国产一区二区AV片| 好硬好涨老师受不了了| 国产亚洲精品美女久久久久| 国产无套码AⅤ在线观看| 国产日产欧产精品精品APP| 国产女人乱子对白AV片| 国产精品一区二区手机在线观看| 国产精品成人嫩草影院| 国产成人综合色在线观看网站| 国产成人无码精品久久久露脸 | 深入浅出糙汉X软妹V1V| 少妇高潮XXXⅩ白浆699| 少妇邻居内射在线| 熟女CHACHACHA性少妇| 少妇被躁爽到高潮无码| 少妇无码AV无码专区在线观看| 色欲狠狠躁天天躁无码中文字幕 | 久久久久久亚洲精品| 久久久久精品国产亚洲AV| 久久九九久精品国产| 久久久久久久综合色一本| 久久无码无码久久综合综合 | 狠狠躁夜夜躁人人躁婷婷| 护士长在办公室躁BD| 精品人妻少妇AV一区二区三区| 精品系列无码一区二区三区| 久久国国产免费999| 久久久久亚洲AV综合波多野结衣| 久久亚洲私人国产精品VA| 麻豆精品传媒一二三区艾秋| 免费无码成人AV片在线在线播放| 男人进入女人下部图| 欧美日韩在线视频一区二区| 人妻av无码一区二区三区| 人人妻人人爽人人澡人人| 日日AV拍夜夜添久久免费| 四虎成人永久在线精品免费| 无码人妻精品一区二区三区免费看 | 俄罗斯人又更又租| 跪下吃他胯下的体育生H| 国产99久久久久久免费看| 国产福利一区二区精品秒拍| 国产精品视频免费播放| 国产午夜激无码AV毛片不| 黑人高潮拔也拔不出来| 久爱WWW成人网免费视频| 久久久久久精品天堂无码中文字幕 | 亚洲AV无码有乱码在线观看| 亚洲精品成人福利网站APP| 亚洲熟妇色XXXXX无码| 岳丰满多毛的大隂户| 67194熟妇在线观看线路| JAVAPARSER丰满白老师| 成本人H无码播放私人影院| 高清国产AV一区二区三区| 国产成人猛男69精品视频| 国产品无码一区二区三区在线蜜桃| 好儿子妈妈今后就是你的人| 久久精品99久久久久久蜜芽TV| 邻居少妇张开双腿让我爽一夜| 女人18片毛片60分钟中国| 人妻去按摩店被黑人按中出|