精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费

始創(chuàng)于2000年 股票代碼:831685
咨詢(xún)熱線: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)容就是上邊所說(shuō)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è)沒(méi)有任何關(guān)聯(lián)條件,就是把所有emp的數(shù)據(jù)
--全部作為一個(gè)dept的數(shù)據(jù)存儲(chǔ),這個(gè)寫(xiě)法顯然是錯(cuò)誤的,如果我們把剛才講的約束給嵌套表加上,就可以起到防止這種錯(cuò)誤的功效了。

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

--按照“每行實(shí)際是一張表”的思想來(lái)更新:
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ú)查詢(xún)嵌套表(如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來(lái)說(shuō)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用來(lái)描述嵌套表如何返回到客戶(hù)應(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)列的額外開(kāi)銷(xiāo),父表和子表都將增加這個(gè)額外的列;
  2.當(dāng)通常已經(jīng)有唯一約束時(shí),父表上的唯一約束是額外開(kāi)銷(xiāo);
  3.沒(méi)有使用不支持的結(jié)構(gòu)(NESTED_TABLE_GET_REFS),嵌套表不容易使用。
  一般推薦在編程結(jié)構(gòu)和視圖中使用嵌套表。如果要使用嵌套表作為存儲(chǔ)機(jī)制,確保嵌套表是IOT,以避免NESTED_TABLE_ID和嵌套表本身中索引的額外開(kāi)銷(xiāo)。


本文出自:億恩科技【www.zuiquanben.com】

服務(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-20183354
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 網(wǎng)絡(luò)版權(quán)侵權(quán)舉報(bào)電話:0371-60135995
  • 警情提示:注意防范電信網(wǎng)絡(luò)詐騙
  • 專(zhuān)注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2026 ENKJ All Rights Reserved 地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師  B1-20183354   京公網(wǎng)安備41019702002023號(hào) 
      0
     
     
     
     

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

     
     
    精品日韩在线,日韩精品福利一区二区三区,日韩午夜黄色,国产日韩欧美高清免费
    久久人人97超碰国产公开结果| 日韩一区欧美二区| 国产精品丝袜xxxxxxx| 亚洲精品一二三区区别| 亚洲欧美日韩在线观看a三区| 美女精品在线| 中文字幕日韩高清在线| 日本不卡高清视频| 欧美日韩午夜电影网| 国产精品亚洲成在人线| 久久精品午夜| 美女网站一区| 亚洲精品在线二区| 国产精品视频一区二区三区综合| 精品久久亚洲| 午夜国产欧美理论在线播放| 亚洲精品观看| 国产一区二区三区网| 亚洲午夜91| 日韩欧美中文字幕在线视频| 精品久久视频| 一本一道久久a久久精品蜜桃| 亚洲欧美久久久| 国产探花在线精品| 日韩一区自拍| 综合色就爱涩涩涩综合婷婷| 麻豆成人在线观看| 午夜国产精品视频| 国产日韩中文在线中文字幕| 日韩精品午夜| 日本在线不卡视频一二三区| 精品久久影院| 丝袜美腿亚洲色图| 精品一区二区三区四区五区| 激情五月综合网| 国产精品最新自拍| 婷婷激情一区| 日韩欧美2区| 日韩伦理一区| 欧美精品影院| 欧美+日本+国产+在线a∨观看| 日本成人一区二区| 999国产精品视频| 国产视频一区二区在线播放| 久久久夜精品| 蜜臀久久99精品久久久久久9| 国产成人久久精品一区二区三区| 蜜臀va亚洲va欧美va天堂 | 国产96在线亚洲| 蜜臀91精品一区二区三区| 欧美成a人片免费观看久久五月天| 欧美1区免费| 国产伊人久久| 日韩一区二区三免费高清在线观看 | 国产粉嫩在线观看| 综合亚洲视频| 尹人成人综合网| 中文字幕高清在线播放| 欧美亚洲tv| 在线午夜精品| av资源中文在线| 亚洲精品日本| 在线视频观看日韩| 国产一区二区三区精品在线观看| 亚洲综合婷婷| 免费精品国产的网站免费观看| 麻豆精品99| 国产日韩欧美一区二区三区在线观看| 伊人久久成人| 欧美日韩国产高清电影| 蜜桃av.网站在线观看| 久久免费精品| 久久99精品久久久久久园产越南| 日韩久久一区| 日韩av午夜在线观看| 一区二区三区网站| 久久精品国产99久久| 另类欧美日韩国产在线| 欧美日一区二区三区在线观看国产免| 久久xxxx精品视频| 老鸭窝亚洲一区二区三区| 亚洲婷婷免费| 视频小说一区二区| 欧美不卡高清一区二区三区| 国产中文欧美日韩在线| 免费亚洲婷婷| 国产福利一区二区三区在线播放| 97se亚洲| 欧美一级网址| 日韩精品成人在线观看| 中文字幕成人| 五月激激激综合网色播| 亚洲字幕久久| 日韩欧美精品一区二区综合视频| 中文字幕乱码亚洲无线精品一区| 亚洲精品综合| 日韩高清电影免费| 欧美天堂一区二区| 国产精品天堂蜜av在线播放| 欧美日韩亚洲一区二区三区在线| 日韩中出av| 国产欧美日韩精品一区二区三区| 国产精品极品在线观看| 久久这里只有| 日韩欧美一区免费| av资源亚洲| 色老板在线视频一区二区| 久久久天天操| 亚洲激情偷拍| 亚洲精品在线二区| 欧美激情福利| 日韩在线高清| 亚洲深夜福利| 欧美精品国产白浆久久久久| 精品国产a一区二区三区v免费| 视频在线不卡免费观看| 久久一区二区三区喷水| 日韩视频免费| 日韩高清不卡一区| 精品国产成人| 香蕉久久99| 中文字幕日韩欧美精品高清在线| 亚洲aⅴ网站| 久久av综合| 久久影院一区| 日韩不卡在线观看日韩不卡视频| 久久av影视| 久久高清免费| 日韩和欧美一区二区| 国产精品毛片一区二区在线看| 激情欧美亚洲| 日本不卡一区二区三区| 精品国产精品国产偷麻豆| 天堂网av成人| 日本伊人久久| 91一区二区三区四区| 亚洲专区欧美专区| 国产毛片精品| 亚洲国内精品| 国产精品天天看天天狠| 亚洲韩日在线| 欧美a在线观看| 91成人精品视频| 国产一区 二区| 国产专区一区| 另类欧美日韩国产在线| 一区免费视频| 国产一区二区视频在线看| 亚洲在线成人| 四虎成人av| 欧美影院精品| 亚洲午夜一级| 国产精品三级| 最新日韩欧美| 久久免费影院| 亚洲精品成人一区| 久久精品av| 麻豆精品视频在线| 亚洲最新av| 免费av一区| 久久久久久一区二区| 欧美三区不卡| 国产精品日韩欧美一区| 精品一区电影| 涩涩涩久久久成人精品| 免费视频亚洲| caoporn视频在线| 精品亚洲a∨| 91欧美极品| 午夜在线精品| 久久婷婷丁香| 日本久久精品| 国产精品videossex| 亚洲一二三区视频| 狠狠色综合网| 久久人人97超碰国产公开结果| 国产精品久久免费视频| 亚洲精品日本| 蜜臀av一区二区三区| 美女网站一区| 久久国产影院| 午夜精品成人av| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久大逼视频| 精品1区2区3区4区| 激情综合亚洲| 亚洲性图久久| 成人午夜国产| 日韩精品永久网址| 高清一区二区三区| 国产成人免费精品| 久久尤物视频| 久久精品国产精品亚洲毛片| 97久久亚洲| 日韩午夜视频在线| 亚洲tv在线| 日韩精品免费视频人成| 亚洲一区亚洲| 久久国产66| 一二三区精品|