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

REFs की तालिका के लिए SCOPE

आप कार्यक्षेत्र को COLUMN_VALUE . में जोड़ना चाहते हैं नेस्टेड तालिका का छद्म-स्तंभ:

ALTER TABLE cyclers_tab ADD SCOPE FOR ( COLUMN_VALUE ) IS cycler;

अगर आप ऐसा करते हैं:

INSERT INTO cycler ( name ) VALUES ( 'c1.1' );
INSERT INTO cycler ( name ) VALUES ( 'c1.2' );

INSERT INTO team (
  name,
  cyclers
) VALUES (
  'team1',
  t_cycler_list(
    ( SELECT REF(c) FROM cycler c WHERE name = 'c1.1' ),
    ( SELECT REF(c) FROM cycler c WHERE name = 'c1.2' )
  )
);

फिर आप पंक्ति सम्मिलित कर सकते हैं। लेकिन, यदि आपके पास समान ऑब्जेक्ट प्रकार की कोई अन्य तालिका है:

CREATE TABLE cycler2 OF t_cycler (
    name PRIMARY KEY
);

INSERT INTO cycler2 ( name ) VALUES ( 'c2.1' );

और ऐसा करने का प्रयास करें:

INSERT INTO team (
  name,
  cyclers
) VALUES (
  'team2',
  t_cycler_list(
    ( SELECT REF(c) FROM cycler2 c WHERE name = 'c2.1' )
  )
);

तब आपको त्रुटि मिलती है:

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. डैश से पहले चरित्र को हटाना

  2. ओरेकल डेटाबेस में अरबी वर्ण

  3. पीएल/एसक्यूएल - जहां खंड में सूची चर का प्रयोग करें

  4. ओरेकल इंस्टेंट क्लाइंट और एंटिटी फ्रेमवर्क कॉन्फ़िगरेशन के साथ परेशानी

  5. अपूर्ण पुनर्प्राप्ति के बाद डेटाबेस की जांच कैसे करें संगत है