You are on page 1of 3

CHÖÔNG 1CHÖÔNG ORACLE OBJECT TYPE

1. Kieåu ñoái töôïng (Object type) laø gì? So vôùi caùc kieåu
döõ lieäu khaùc kieåu ñoái töôïng coù gì ñaëc bieät?

2. Haõy taïo ñoái töôïng laø moät ñôn ñaët haøng PO


(Purchase Order) vôùi caùc thuoäc tính sau:
item_id NUMBER
line_no NUMBER (3)
part_no VARCHAR2 (20)
price NUMBER (15,5)
qty NUMBER (9,2)
received NUMBER (9,2)
Xaây döïng caùc phöông thöùc cho bieát soá löôïng haøng caàn
ñaët, soá löôïng haøng ñaõ nhaän …

3. Taïo moät baûng (table) löu ñoái töôïng PO (ñôn ñaët


haøng) theo coät.

4. Taïo moät baûng (table) löu ñoái töôïng PO (ñôn ñaët


haøng) theo doøng.

5. Thöïc hieän leänh INSERT cheøn caùc PO môùi vaøo baûng,


SELECT xuaát caùc PO ñaõ nhaäp ra maøn hình, UPDATE caäp nhaät
thoâng tin veà PO, DELETE xoùa caùc PO cuõ …
6. So saùnh hai ñoái töôïng ñöôïc thöïc hieän nhö theá naøo?
Phaân bieät phöông thöùc aùnh xaï (map method) vaø phöông thöùc
phaân ngoâi (order method).

7. Tham chieáu vaø keát noái giöõa caùc ñoái töôïng töø hai
baûng khaùc nhau ñöôïc thöïc hieän nhö theá naøo, cho ví duï.

8. Coù theå raøng buoäc moät thuoäc tính cuûa moät ñoái
töôïng baèng caùc töø khoùa NOT NULL, CHECK hoaëc PRIMARY KEY
hay khoâng?
1.1.ÑAÙP AÙN
1. Khoâng nhö caùc kieåu döõ lieäu khaùc, kieåu döõ lieäu
Object laø moät kieåu döõ lieäu phöùc hôïp noù coù theå ñoùng goùi
nhöõng kieåu döõ lieäu khaùc (ñöôïc bieåu dieãn döôùi daïng thuoäc
tính) vaø caû nhöõng phöông thöùc ñeå xöû lyù döõ lieäu maø ñoái
töôïng ñoùng goùi. Baïn coù theå taïo ra moät kieåu ñoái töôïng vaø
chæ ñònh aùp duïng kieåu ñoái töôïng cho moät coät cuûa baûng
hoaëc toaøn boä baûng. Vieäc truy xuaát caùc ñoái töôïng löu trong
baûng cuõng thoâng qua caùc leänh SQL thoâng thöôøng. Söû duïng
kieåu ñoái töôïng baïn seõ moâ taû döõ lieäu gaàn vôùi theá giôùi
thöïc hôn.

2. Kieåu ñoái töôïng PO coù theå ñöôïc taïo ra nhö sau:

/* Phaàn ñaëc taû */


CREATE TYPE po AS OBJECT(
item_id NUMBER,
line_no NUMBER (3),
part_no VARCHAR2 (20),
price NUMBER (15,5),
qty NUMBER (9,2),
received NUMBER (9,2),
-- Phöông thöùc duøng ñeå laáy veà löôïng haøng
chöa nhaän
MEMBER FUNCTION Backlog RETURN NUMBER,

-- Phöông thöùc duøng ñeå laáy veà soá tieàn cuûa


PO
MEMBER FUNCTION GetAmount NUMBER
RETURN NUMBER

);

/* phaàn thaân cuûa ñoái töôïng */


CREATE TYPE BODY po AS

MEMBER FUNCTION Backlog RETURN NUMBER


IS

BEGIN
RETURN (qty-received)
END Backlog;

MEMBER FUNCTION GetAmount RETURN NUMBER


IS

BEGIN
RETURN (qty*price)
END GetAmount;

END;

3. Taïo moät baûng (table) löu ñoái töôïng PO theo coät:


CREATE TABLE ALLPO(d DATE,SaleOrder PO);
Baûng ALLPO seõ ñöôïc taïo ra vôùi noäi dung nhö sau:
SQL> DESC ALLPO

4. Taïo moät baûng (table) löu ñoái töôïng PO theo doøng:


CREATE TABLE ALLPO OF PO;
Baûng ALLPO seõ ñöôïc taïo ra vôùi noäi dung nhö sau:
SQL> DESC ALLPO

5. Cheøn PO (ñôn ñaët haøng) môùi vaøo baûng ALLPO

6. Xem lyù thuyeát.

7,8. Xem lyù thuyeát.

You might also like