MyTetra Share
Делитесь знаниями!
Доктора + пациенты на проходной
Время создания: 12.11.2017 13:47
Раздел: PL/SQL - Задачник - TYPES
Запись: xintrea/mytetra_db_mcold/master/base/1510483636is3w84u8ok/text.html на raw.githubusercontent.com

CREATE OR REPLACE TYPE person_typ AS OBJECT (name VARCHAR2(30))

NOT FINAL

/


CREATE OR REPLACE TYPE employee_typ UNDER person_typ (empid NUMBER)

NOT FINAL

/


CREATE OR REPLACE TYPE visitor_typ UNDER person_typ (regid NUMBER)

NOT FINAL

/


CREATE OR REPLACE TYPE doctor_typ UNDER employee_typ

(speciality VARCHAR2(30)

, phone VARCHAR2(7)

)

/


CREATE OR REPLACE TYPE stuff_typ UNDER employee_typ (job VARCHAR2(30))

/


-----

определение соотношения потомок-предок


SELECT supertype_name, type_name

FROM user_types 
ORDER BY 1, 2;

----
И посетители, и сотрудники проходят через проходную, где отмечаются в таблице CHECKPOINT:
CREATE TYPE checkpoint_typ AS OBJECT
   ( entrytime DATE
   , person person_typ )
/

CREATE TABLE checkpoint2 OF checkpoint_typ;
/
--------
Вставляем записи:
INSERT INTO checkpoint VALUES
   ( SYSDATE
   , employee_typ ( 'Scott', 1111 ) );

INSERT INTO checkpoint VALUES
   ( SYSDATE
   , visitor_typ ( 'Adams', 333 ) );

INSERT INTO checkpoint VALUES
   ( SYSDATE
   , doctor_typ ( 'Smith', 2222, 'Therapeutist', '7778899' ) );

INSERT INTO checkpoint VALUES
   ( SYSDATE
   , stuff_typ ( 'Alice', 4444, 'Office-cleaner' ) );
Так же в этом разделе:
  • Доктора + пациенты на проходной
  • Emplyees types
 
MyTetra Share v.0.65
Яндекс индекс цитирования