Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल में इनहेरिटेंस टेबल कैसे बनाएं?

सही सिंटैक्स का उपयोग करके अपने प्रकार बनाएं:

CREATE TYPE Event_t AS OBJECT(
  EventID   char(5),
  EventType varchar(20),
  VenueName varchar(50),
  NoOfGuest number(10)
) NOT FINAL;

CREATE TYPE HotelEvent_t UNDER Event_t (
  datetime date,                -- Date is a keyword, try to use a different name.
  Price  number(8,2)
);

CREATE TYPE SpecialEvent_t UNDER event_t (
  BookingDate date,
  EndDate     date,
  MenuNumbers NUMBER(2),
  Reservation ref Reservation_t
);

फिर आप एक ऑब्जेक्ट टेबल बना सकते हैं:

CREATE TABLE Events OF Event_T(
  eventid CONSTRAINT Events__EventID__PK PRIMARY KEY
);

फिर आप इसमें विभिन्न प्रकार सम्मिलित कर सकते हैं:

INSERT INTO EVENTS VALUES(
  HotelEvent_T(
    'H1',
    'HOTEL',
    'Venue1',
    42,
    DATE '0001-02-03' + INTERVAL '04:05:06' HOUR TO SECOND,
    123456.78
  )
);

INSERT INTO EVENTS VALUES(
  SpecialEvent_T(
    'SE1',
    'SPECIAL',
    'Time Travel Convention',
    -1,
    SYSDATE,
    TRUNC(SYSDATE),
    0,
    NULL
  )
);

और इससे डेटा प्राप्त करें:

SELECT e.*,
       TREAT( VALUE(e) AS HotelEvent_T ).datetime AS datetime,
       TREAT( VALUE(e) AS HotelEvent_T ).price AS price,
       TREAT( VALUE(e) AS SpecialEvent_T ).bookingdate AS bookingdate,
       TREAT( VALUE(e) AS SpecialEvent_T ).enddate AS enddate,
       TREAT( VALUE(e) AS SpecialEvent_T ).menunumbers AS menunumbers
FROM   Events e;

कौन सा आउटपुट:

db<>fiddle यहां



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में ऑडिटिंग

  2. TNSPING ठीक है लेकिन sqlplus ORA-12154 देता है?

  3. मैं SQL डेवलपर में कच्ची चर लंबाई बहुत लंबी त्रुटियों से कैसे बच सकता हूं?

  4. एक SQL क्वेरी कैसे लिखें जो इनपुट तालिका से कई पंक्तियों को आउटपुट तालिका में एक पंक्ति में जोड़ती है

  5. क्लोब चर में लंबे कच्चे डेटा को पुनः प्राप्त करना