日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle面向对象的数据类型,Oracle面向对象编程OOP

發(fā)布時間:2025/3/12 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle面向对象的数据类型,Oracle面向对象编程OOP 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.2.6? 嵌套表AS TABLE OF

嵌套表是表中之表,一個嵌套表是某些行的集合,它在主表中表示為其中的一列。對主表中的每一條記錄,嵌套表可以包含多個行。

語法如下:

CREATE OR REPLACE TYPE table_name AS TABLE OF type;

語法說明:

1.? table_name :嵌套表名。

2. type:數(shù)組的類型,可以是基本變量,如varchar2,integer等,也可以是自定義的對象類型,如上面定義的NAME_TYPE。

1.2.7? 繼承-Oracle中面向?qū)ο筇卣?/p>

繼承父類的子類對象類型將有父類的所有屬性、方法和過程。 父類型必須聲明為NOT FINAL,子類型使用關(guān)鍵字UNDER。

舉例:

--創(chuàng)建父類型

CREATE TYPE animal_type AS OBJECT(

name? ? VARCHAR2(50),

hair? ? VARCHAR2(50),

foot? ? VARCHAR2(50)

) NOT FINAL;

--子類型繼承父類型

CREATE TYPE cat_type UNDER animal_type(

paw? ? VARCHAR2(50)

);

如果父類沒有聲明為NOT FINAL,子類在繼承的時候?qū)箦e:Error: PLS-00590: attempting to create a subtype UNDER a FINAL type。

1.2.8 重寫overriding

重寫就是在子類中對父類又有的方法或過程重新實現(xiàn)。重寫關(guān)鍵字為overriding,在子類中把要重寫的方法或過程聲明和實現(xiàn)之前加上該關(guān)鍵字。

舉例:

定義頭部:

CREATE OR REPLACE TYPE cat_type UNDER annimal_type

(

paw VARCHAR2(50),

OVERRIDING MEMBER PROCEDURE PROC_RUN

)

定義主體:

CREATE OR REPLACE TYPE BODY cat_type

IS

OVERRIDING MEMBER PROCEDURE PROC_RUN

IS

BEGIN

//重新實現(xiàn)

END;

END;

1.2.9? 對象表

對象表是指該表的一行都是一個對象(對象類型的實例),每個對象有一個OID(object ID)。

1.2.9.1 對象表的創(chuàng)建

創(chuàng)建對象表的語法:

CREATE TABLE table_name OF object_type;

語法說明:

1.table_name:對象表名稱,執(zhí)行創(chuàng)建對象表語句后,數(shù)據(jù)庫中將會生成一個名字為table_name的表。

2.object_type:對象類型,生成的表的字段和對象類型時對應(yīng)的。

舉例:

CREATE TABLE t_name OF NAME_TYPE;

執(zhí)行上面語句后,數(shù)據(jù)庫將生成一個t_name表,這個表就是對象表。

1.2.9.2? 對象表的關(guān)聯(lián)

對象表之間沒有主外鍵關(guān)聯(lián)的概念,為了體現(xiàn)這層關(guān)系,oracle中用了ref對象來實現(xiàn)。

下面介紹下相關(guān)操作法和函數(shù):

1.? ref操作符:聲明引用類型。如 name ref NAME_TYPE, 變量或字段name就是引用類型,存儲NAME_TYPE型對象的OID。

2.? ref(表的別名)函數(shù):獲得對象表中對象OID值,如select ref(a) from otable a。

3.? deref(OID)函數(shù):通過OID找到并返回行對象表中對象。

下面通過一個例子說明對象表直接的關(guān)聯(lián):

--員工對象類型

CREATE OR REPLACE TYPE employee AS OBJECT(

cardId? VARCHAR2(100),

address? VARCHAR2(100),

sex? ? ? VARCHAR2(1),

name? ? REF NAME_TYPE,? --通過REF操作符,表示該字段引用NAME_TYPE對象,該字段實際存儲的時對象的OID

age? ? ? INTEGER

);

--創(chuàng)建t_employee對象表

CREATE TABLE t_employee OF employee;

--向NAME_TYPE的對象表t_name插入數(shù)據(jù)

INSERT INTO t_name VALUES('LI', 'KUI');

INSERT INTO t_name VALUES('ZHANG', 'LAN');

INSERT INTO t_name VALUES('CHEN', 'MING');

COMMIT;

--向員工表插入數(shù)據(jù)

INSERT INTO t_employee VALUES(

'101',

'beijing',

'1',

(SELECT REF(n) FROM t_name n where n.firstname = 'LI'), --通過ref(表別名)獲得對象的引用

23

);

INSERT INTO t_employee VALUES(

'102',

'shanghai',

'0',

(SELECT REF(n) FROM t_name n where n.firstname = 'ZHANG'),--通過ref(表別名)獲得對象的引用

23

);

COMMIT;

--通過聲明一個引用變量,新增數(shù)據(jù)

DECLARE

-- 聲明NAME_TYPE類型的引用

name_ref REF NAME_TYPE;

BEGIN

SELECT REF(n) INTO name_ref FROM t_name n where n.firstname = 'CHEN';

INSERT INTO t_employee VALUES(

'103',

'chengdu',

'1',

name_ref,

24

);

COMMIT;

END;

--查詢員工的信息,使用deref來獲得對象字段的值

SELECT t.cardId, t.address, deref(t.name) from t_employee t;

--更新引用類型,即賦予新的對象的OID值

UPDATE t_employee t SET name = (SELECT ref(n) FROM t_name n WHERE n.firstname = 'ZHANG') WHERE t.cardId = '103';

DELETE FROM t_employee WHERE name = (SELECT ref(n) FROM t_name n WHERE n.firstname = 'ZHANG');

總結(jié)

以上是生活随笔為你收集整理的oracle面向对象的数据类型,Oracle面向对象编程OOP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一级片免费在线观看 | 蜜桃成人无码区免费视频网站 | 亚洲在线看片 | 国产成人99久久亚洲综合精品 | 亚洲成人免费av | 国产黄色精品 | 美女爽爽爽 | 日本一区二区三区中文字幕 | 成人福利网站在线观看 | 国产精品 欧美精品 | 日韩女优在线视频 | 亚洲精品国产电影 | 蜜臀av一区二区 | 新版红楼梦在线高清免费观看 | 免费在线你懂的 | 日韩色图在线观看 | 曰女同女同中文字幕 | 91看黄| 国产污片在线观看 | 成人av一区二区三区 | 亚洲午夜无码久久久久 | 午夜影院试看 | 欧美偷拍少妇精品一区 | 国产在线视频二区 | www在线看| 天堂最新资源在线 | av乱码| 黄色精品在线观看 | 六月丁香色婷婷 | 日本免费网站视频 | 日韩一区二区三区在线视频 | 亚洲v视频| 国产毛片毛片毛片毛片毛片 | 曰韩毛片 | 韩国三级中文字幕 | 精品久久久久久久久中文字幕 | 亚洲成人偷拍 | 青青久久久 | 色偷偷欧美 | 婷婷在线一区 | 日日碰碰| 午夜免费观看视频 | 日本伦理片在线看 | 亚洲涩涩爱| 成人一区二区三区四区 | 中国黄色小视频 | 中国一级特黄毛片 | 欧美高h| 成人在线观看黄色 | 欧美精品福利视频 | 懂色av一区二区三区四区五区 | 久久国产福利 | 免费一级特黄 | 成年女人色毛片 | 黄色aa毛片 | 欧美一级做性受免费大片免费 | 成熟女人毛片www免费版在线 | 亚洲视频大全 | 涩涩视频网 | 丰满的女邻居 | 欧美成人免费大片 | www.污视频 | 2025中文字幕 | 好吊视频一区 | 日韩在线中文字幕 | 成人精品一区日本无码网 | 免费成人av在线播放 | 亚洲成人播放器 | xvideos永久免费入口 | 中国黄色片视频 | 少妇又色又紧又黄又刺激免费 | 国产一区二区三区视频免费在线观看 | 日韩毛片在线免费观看 | 18我禁在线观看 | 亚洲国产网 | 成人av免费看 | 一级黄色性视频 | 亚洲精品中字 | 91视频www | 日韩毛片一区 | 三男一女吃奶添下面 | 日韩中文在线一区 | 天天做天天射 | 欧美乱大交xxxxx潮喷l头像 | 好屌妞视频这里只有精品 | 特黄一区二区三区 | 国产网站无遮挡 | 日一日干一干 | 国产亚洲精久久久久久无码77777 | 自拍偷拍av | 亚洲精品视频三区 | 亚洲第一视频 | 亚洲欧美视频在线观看 | 免费中文字幕av | 在线三级av| 欧美另类极品videosbest使用方法 | 国产高清片 | 精品无码成人久久久久久免费 | 精品国产乱码久久久久久影片 |