oracle物件導向技術中的map和order方法有何不同?
MAP方法
MAP方法用於將物件例項對映為標量數值(NUMBER,DATE,VARCHAR2等);對於相同物件型別不同物件例項來說,因為他們的資料型別是複合資料型別,所以物件例項之間不能直接進行比較。為了排序多個物件例項的資料,可以在建立物件型別時定義MAP方法。
*注意:
一個物件型別最多隻能定義一個MAP方法,並且MAP方法和ORDER方法不能同時使用。
1、建立物件型別規範和物件型別體test_map_method_obtype
/**
建立物件型別規範和物件型別體test_map_method_obtype
MAP方法主要用於獲取僱員的年齡
**/
--建立物件型別規範test_map_method_obtype
CREATE OR REPLACE TYPE test_map_method_obtype AS OBJECT(
name VARCHAR2(30),
gender VARCHAR2(2),
birthdate DATE,
MAP MEMBERFUNCTION get_age_fnc RETURN NUMBER
);
/
--建立物件型別體test_map_method_obtype
CREATE OR REPLACE TYPE BODY test_map_method_obtype AS
MAP MEMBERFUNCTION get_age_fnc RETURN NUMBER IS
BEGIN
RETURN TRUNC((SYSDATE-birthdate)/365);
END get_age_fnc;
END;
/
2、建立物件表test_map_method並追加資料
/**
基於物件型別test_map_method_obtype
建立物件表test_map_method併為其插入資料
**/
--建立物件表test_map_method
DROP TABLE test_map_method PURGE;
CREATE TABLE test_map_method(
empno NUMBER(2) ,
employee test_map_method_obtype NOT NULL,
job VARCHAR2(20) NOT NULL,
sal NUMBER(7,2)
);
--向物件表test_map_method插入資料
INSERT INTO test_map_method
VALUES(10,test_map_method_obtype('張三', '男',
TO_DATE('1990-02-10', 'yyyy-mm-dd')),'CLERK',2000);
INSERT INTO test_map_method
VALUES(20,test_map_method_obtype('李四', '男',
TO_DATE('1989-08-01', 'yyyy-mm-dd')),'SALESMAN',3000);
INSERT INTO test_map_method
VALUES(30,test_map_method_obtype('王麗', '女',
TO_DATE('1988-06-09', 'yyyy-mm-dd')),'MANAGER',6000);
COMMIT;
3、呼叫MAP方法進行僱員年齡的比較;
DECLARE
--定義巢狀表test_tbtype
TYPE test_tbtype IS TABLE OF test_map_method_obtype;
--宣告巢狀表型別變數t_person
t_person test_tbtype;
BEGIN
--批處理資料,將物件表中的物件列employee
--的資料儲存在巢狀表t_person中
SELECT employee
BULK COLLECT INTO t_person
FROM test_map_method;
--比較年齡大小
IF t_person(1).get_age_fnc() >t_person(2).get_age_fnc() THEN
DBMS_OUTPUT.put_line(t_person(1).name||'比'||t_person(2).name||'大');
ELSE
DBMS_OUTPUT.put_line(t_person(1).name||'比'||t_person(2).name||'小');
END IF;
END;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-755380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- php 物件導向中的魔術方法PHP物件
- PHP 核心技術 --物件導向PHP物件
- 物件導向技術概述 (轉)物件
- 看透物件導向的複用技術物件
- PHP 物件導向 (六)魔術方法PHP物件
- 物件導向的類測試技術研究物件
- 看完就能掌握的PHP核心技術 - 物件導向PHP物件
- “程序導向”和“物件導向”物件
- Perl的物件導向方法物件
- 軟體設計師:物件導向技術物件
- php中的程式導向與物件導向PHP物件
- Golang 中的物件導向Golang物件
- go物件導向方法的呼叫Go物件
- 物件導向有哪些特性物件
- 不同維度的拆分:物件導向和函式式的區別物件函式
- java物件導向(中)Java物件
- 物件導向中類和物件的定義是什麼?物件
- Javascript 物件導向中的建構函式和原型物件JavaScript物件函式原型
- [Java物件導向]static方法Java物件
- JavaScript中的物件導向----類JavaScript物件
- 物件導向-物件導向思想物件
- JavaScript物件導向—物件的建立和操作JavaScript物件
- 1 物件導向的開發方法物件
- python中物件導向有什麼特點Python物件
- c#物件導向中的get和set的用法C#物件
- 物件導向和麵向過程物件
- JS 中的物件導向 prototype classJS物件
- Java匹馬行天下之JavaSE核心技術——物件導向Java物件
- 第十一章——物件導向技術(選做15+)物件
- 解釋下什麼是物件導向?物件導向和麵向過程的區別?物件
- 程式導向和麵向物件的對比(轉)物件
- 物件導向和麵向過程的區別物件
- 困惑:程式導向和麵向物件的結合?物件
- js 中的json物件和mapJSON物件
- 物件導向的基本理論1:類和物件物件
- Lua 中實現物件導向物件
- #JAVA#物件導向(繼承中成員方法的關係)Java物件繼承
- 物件導向:希望你對自己和未來的生活有自信,有擔當物件