欧美日日操,日日爱网站,99久久久久久久,日本高清不卡免费,久久免费观看国产精品,秋霞在线观看视频一区二区三区

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

Oracle提供兩種使用嵌套表

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

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

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

*/

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

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í)行此步驟,等做完下一步測試我們再創(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)作一個表,并自然連接且不需要連接條件):
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ù),顯然是錯誤的

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

--增加約束再執(zhí)行我們上邊的第二個insert語句將會報錯
--我們按照上邊第一個insert語句插入數(shù)據(jù),繼續(xù)我們下邊的測試。

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

--插入與刪除的語法:
  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';

--一般而言,必須總是連接,而不能單獨查詢嵌套表(如emp_nest)中的數(shù)據(jù),但是如果確實需要,是可以的。
--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$兩列。對父表DEPT_AND_EMP來說NESTED_TABLE_ID是一個外鍵。
--使用這個hint就可以直接操作嵌套表了:
  UPDATE /*+NESTED_TABLE_GET_REFS+*/ emps_nest SET ename=INITCAP(ename);
  
--嵌套表的存儲:
--上例中,現(xiàn)實產(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)情況下,每個嵌套表列都產(chǎn)生一個額外的RAW(16)隱藏列,并在其上創(chuàng)建了唯一約束,用以指向嵌套表。而嵌套表中有兩個
--隱藏列:SYS_NC_ROWINFO$是作為一個對象返回所有標(biāo)量元素的一個偽列;另一個NESTED_TABLE_ID的外鍵回指向父表。
--可以看到真實代碼:
/*
  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存儲嵌套表。
  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)的嵌套表相比,使用了較少的存儲空間并有最需要的索引。
  不使用嵌套表作為永久存儲機(jī)制的原因
  1.增加了RAW(16)列的額外開銷,父表和子表都將增加這個額外的列;
  2.當(dāng)通常已經(jīng)有唯一約束時,父表上的唯一約束是額外開銷;
  3.沒有使用不支持的結(jié)構(gòu)(NESTED_TABLE_GET_REFS),嵌套表不容易使用。
  一般推薦在編程結(jié)構(gòu)和視圖中使用嵌套表。如果要使用嵌套表作為存儲機(jī)制,確保嵌套表是IOT,以避免NESTED_TABLE_ID和嵌套表本身中索引的額外開銷。


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

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

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

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

     
     
    欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美国产日韩久久久| 日本免费乱人伦在线观看| 国产不卡福利| 国产麻豆精品免费密入口| 欧美激情一区二区三区视频 | 国产网站在线| 精品国产香蕉在线播出| 成人影视在线播放| 国产欧美精品午夜在线播放| 91麻豆爱豆果冻天美星空| 欧美激情一区二区三区在线 | 韩国毛片免费| 欧美日本免费| 日本在线播放一区| 黄视频网站免费观看| 日韩中文字幕在线播放| 日韩专区在线播放| 久久久久久久久综合影视网| 日韩在线观看网站| 四虎影视久久| 日韩在线观看视频免费| 国产综合成人观看在线| 九九九网站| 一级女性全黄久久生活片| 日韩中文字幕在线播放| 色综合久久手机在线| 精品在线视频播放| 91麻豆精品国产自产在线观看一区| 台湾毛片| 中文字幕一区二区三区精彩视频| 国产一区二区精品| 国产一区二区精品久久91| 黄色福利片| 国产视频一区二区在线播放| 九九免费精品视频| 日本伦理黄色大片在线观看网站| 国产a一级| 在线观看成人网| 国产视频久久久| 欧美爱色| 精品视频一区二区三区| 欧美1区| 免费的黄色小视频| 久久99中文字幕久久| 国产美女在线观看| 黄视频网站在线免费观看| 欧美激情一区二区三区在线播放 | 国产麻豆精品高清在线播放| 亚洲天堂在线播放| 欧美爱色| 国产一区二区精品久久91| 国产一区二区精品尤物| 日韩中文字幕一区二区不卡| 久草免费在线视频| 欧美日本二区| 四虎影视久久久| 成人高清视频免费观看| 欧美激情在线精品video| 日本伦理黄色大片在线观看网站| 天天做人人爱夜夜爽2020 | 精品久久久久久免费影院| 欧美激情一区二区三区在线 | 国产高清在线精品一区a| 国产成人精品综合在线| 精品久久久久久中文字幕2017| 91麻豆国产| 亚洲第一色在线| 超级乱淫黄漫画免费| 麻豆污视频| 四虎论坛| 欧美另类videosbestsex高清 | 99色视频在线观看| 免费一级生活片| 国产一区二区精品久久| 欧美一级视频免费观看| 精品久久久久久免费影院| 九九免费精品视频| 亚洲精品中文一区不卡| 二级特黄绝大片免费视频大片| 久久久久久久男人的天堂| 青青久久国产成人免费网站| 一级片片| 可以免费在线看黄的网站| 免费毛片播放| 日韩中文字幕在线观看视频| 久久国产精品自线拍免费| 国产美女在线一区二区三区| 亚洲精品永久一区| 国产精品1024在线永久免费| 日韩av片免费播放| 国产91精品露脸国语对白| 久草免费在线观看| 香蕉视频久久| 日本在线播放一区| 成人a大片高清在线观看| 日本在线www| 99久久精品国产高清一区二区| 国产伦精品一区二区三区在线观看| 精品国产一区二区三区精东影业| 国产不卡在线观看| 精品久久久久久中文字幕一区| 亚洲第一色在线| 日韩在线观看视频免费| 韩国三级视频网站| 欧美大片aaaa一级毛片| 日韩中文字幕在线亚洲一区 | 欧美日本免费| 国产网站免费| 国产视频一区二区在线观看 | 青青久久国产成人免费网站| 久久成人综合网| 国产91精品系列在线观看| 麻豆系列 在线视频| 97视频免费在线观看| 中文字幕一区二区三区精彩视频| 尤物视频网站在线观看| 欧美a免费| 国产麻豆精品免费密入口| 日本免费乱人伦在线观看| 99热精品一区| 一本伊大人香蕉高清在线观看| 日韩专区亚洲综合久久| 国产a视频精品免费观看| 国产一区二区精品尤物| 四虎论坛| 国产激情一区二区三区| 韩国妈妈的朋友在线播放| 日韩专区在线播放| 四虎精品在线观看| 一本伊大人香蕉高清在线观看| 国产高清在线精品一区二区| 麻豆污视频| 欧美国产日韩久久久| 日韩中文字幕一区| 欧美另类videosbestsex | 日韩一级黄色大片| 黄色福利| 日本免费乱人伦在线观看| 美女免费毛片| 久久精品人人做人人爽97| 久久国产精品自线拍免费| 国产视频久久久| 色综合久久天天综线观看| 精品国产三级a| 成人免费一级毛片在线播放视频| 免费国产在线观看| 成人a大片在线观看| 久久成人亚洲| 国产成人精品综合在线| 免费的黄色小视频| 高清一级毛片一本到免费观看| 91麻豆精品国产高清在线| 国产91素人搭讪系列天堂| 日韩专区亚洲综合久久| 91麻豆精品国产高清在线| 91麻豆精品国产高清在线| 在线观看成人网 | 日韩男人天堂| 午夜在线影院| 久久国产影视免费精品| 四虎影视库国产精品一区| 久久国产精品自由自在| 韩国三级香港三级日本三级la| 久久精品道一区二区三区| 99色视频在线观看| 国产欧美精品午夜在线播放| 国产不卡在线观看视频| 欧美电影免费看大全| 九九热国产视频| 国产不卡在线看| 久草免费在线观看| 麻豆系列 在线视频| 91麻豆tv| 麻豆系列 在线视频| 日本伦理黄色大片在线观看网站| 日韩在线观看视频免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 色综合久久天天综合绕观看| 可以免费看污视频的网站| 91麻豆精品国产高清在线| 青青久在线视频| 国产麻豆精品视频| 香蕉视频三级| 国产成a人片在线观看视频| 精品国产香蕉在线播出| 精品视频一区二区三区| 成人免费网站视频ww| 久久国产影院| 青青久久国产成人免费网站| 欧美电影免费看大全| 成人免费一级纶理片| 91麻豆国产级在线| 国产成人啪精品| 午夜在线亚洲| 久久精品欧美一区二区| 99久久网站| 国产一区二区精品久久91| 精品国产一区二区三区久久久狼| 久久成人亚洲|