Зачем использовать псевдоним при вызове методов объекта?
CREATE TYPE person_typ AS OBJECT (
idno NUMBER,
first_name VARCHAR2(20),
last_name VARCHAR2(25),
email VARCHAR2(25),
phone VARCHAR2(20),
MAP MEMBER FUNCTION get_idno RETURN NUMBER
);
CREATE TYPE BODY person_typ AS
MAP MEMBER FUNCTION get_idno RETURN NUMBER IS
BEGIN
RETURN idno;
END;
END;
CREATE TABLE contacts (
contact person_typ,
contact_date DATE );
INSERT INTO contacts
VALUES
( person_typ (65, 'Verna', 'Mills', 'vmills@example.com', '1-650-555-0125'), '24 Jun 2003' );
Затем, согласно документации, когда нужно вызвать метод get_idno()
, следует сделать это:
SELECT c.contact.get_idno() FROM contacts c;
Почему здесь необходимо использовать псевдоним? то есть почему не работает это:
SELECT contacts.contact.get_idno() FROM contacts;
?
1 ответ
Вы можете сравнить его с объектно-ориентированным программированием.
You need to create the instance of an object , before using any methods of it .
You can not directly call it by using contacts