2010-01-27 19 views
5

all_objects थेरेस में आ स्तंभ SUBOBJECT_NAME कहा जाता है, और डॉक्स का कहना है कि यह है:एक प्रकार के लिए उपरोक्त क्या है?

subobject का नाम (उदाहरण के लिए, विभाजन)

तो आप निम्न क्वेरी कार्य करें:

select * 
    from all_objects 
where owner = 'MDSYS' 
    and object_name = 'SDO_TGL_OBJECT_ARRAY' 

आपको लगता है कि MDSYS.SDO_TGL_OBJECT_ARRAY में $VNS_1 नामक एक उपरोक्त है। यह क्या है? प्रकार उपनिवेश कैसे हो सकता है?

+0

त्वरित Google मुझे यह इंप्रेशन देता है कि इसका मतलब है कि बच्चे की वस्तुओं –

+0

आपकी उदाहरण क्वेरी ALL_OBJECTS के बजाय ALL_TYPES का उपयोग करती है, जो आपके प्रश्न को भ्रमित करती है। – APC

+0

Whoops, गलत क्वेरी का उपयोग किया:/ – thecoop

उत्तर

2

कभी-कभी प्रलेखन का अर्थ है जो कहता है।

चित्रण के माध्यम से, मेरे पास RANGE_PART_INTERVAL_TABLE नामक एक तालिका है जिसमें तीन विभाजन हैं। मैं ALL_OBJECTS के खिलाफ प्रासंगिक क्वेरी चलाता हूं, और लो!

SQL> select object_name, object_type, subobject_name 
    2 from all_objects 
    3 where object_name = 'RANGE_PART_INTERVAL_TABLE' 
    4/

OBJECT_NAME     OBJECT_TYPE   SUBOBJECT_NAME 
------------------------------ ------------------- --------------- 
RANGE_PART_INTERVAL_TABLE  TABLE 
RANGE_PART_INTERVAL_TABLE  TABLE PARTITION  SYS_P60 
RANGE_PART_INTERVAL_TABLE  TABLE PARTITION  SYS_P61 
RANGE_PART_INTERVAL_TABLE  TABLE PARTITION  SYS_P62 

SQL> 

मुझे लगता है कि समस्या "ऑब्जेक्ट्स" शब्द का उपयोग है। ओरेकल ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग से पहले एक समय से आता है (यदि आप ऐसी चीज की कल्पना कर सकते हैं)। इसका डेटा डिक्शनरी "डेटाबेस ऑब्जेक्ट" का उपयोग "चीज़" - टेबल, व्यू, अनुक्रम, प्रक्रिया इत्यादि के लिए करता है। जब ओरेकल ने ओओपी को डेटाबेस में पेश किया तो उसने TYPE कीवर्ड का इस्तेमाल किया। इन नई चीजों के लिए। तो देखें ALL_OBJECTS सभी चीजों की एक सूची है आपकी स्कीमा के पास केवल उपयोगकर्ता द्वारा परिभाषित प्रकारों पर ही विशेषाधिकार हैं।

संपादित

बस स्पष्ट होना, इस प्रकार inheritence के साथ कोई संबंध नहीं है।

SQL> create type my_type as object (attr1 number) not final 
    2/

Type created. 

SQL> create type my_sub_1 under my_type (attr2 date) 
    2/

Type created. 

SQL> select object_name, object_type, subobject_name 
    2 from all_objects 
    3 where object_name = 'MY_TYPE' 
    4/

OBJECT_NAME     OBJECT_TYPE   SUBOBJECT_NAME 
------------------------------ ------------------- --------------- 
MY_TYPE      TYPE 

SQL> 

Inheritence उपयोगकर्ता/सभी/DBA_TYPES देखने के लिए, जो व्युत्पन्न प्रकार की महाप्रकार से पता चलता द्वारा दिखाया गया है: ...

SQL> select type_name, supertype_name 
    2 from all_types 
    3 where type_name in ('MY_TYPE', 'MY_SUB_1') 
    4/

TYPE_NAME      SUPERTYPE_NAME 
------------------------------ ------------------------------ 
MY_SUB_1      MY_TYPE 
MY_TYPE 

SQL> 

EDIT2

TheCoop बताते हैं:

प्रकारों में विभाजन नहीं हो सकते

विशिष्ट मामले में वे $VNS_1 टाइप इवोल्यूशन का एक आर्टेफैक्ट है। जब हम उस प्रकार के उपयोग के बाद एक वैकल्पिक प्रकार निष्पादित करते हैं तो ओरेकल इसका एक संस्करण बनाता है। हम% _TYPE_VERSIONS विचारों में

SQL> select * from dba_type_versions 
    2 where owner = 'MDSYS' 
    3 and type_name = 'SDO_TGL_OBJECT_ARRAY' 
    4/

OWNER       TYPE_NAME      VERSION# 
------------------------------ ------------------------------ ---------- 
TYPECODE      STATUS  LINE 
------------------------------ ------- ---------- 
TEXT 
------------------------------------------------------------------------------ 
HASHCODE 
---------------------------------- 
MDSYS       SDO_TGL_OBJECT_ARRAY     1 
COLLECTION      VALID   1 
type SDO_TGL_OBJECT_ARRAY 
61EB9AEC10198F71C141D13B32F52C00A8 

MDSYS       SDO_TGL_OBJECT_ARRAY     1 
COLLECTION      VALID   2 
             as VARRAY (1000000) of SDO_TGL_OBJECT 
61EB9AEC10198F71C141D13B32F52C00A8 

MDSYS       SDO_TGL_OBJECT_ARRAY     2 
COLLECTION      VALID   1 
type SDO_TGL_OBJECT_ARRAY 
6184209BAEF1F731B937760C2BA8B45688 

MDSYS       SDO_TGL_OBJECT_ARRAY     2 
COLLECTION      VALID   2 
             as VARRAY (1000000) of SDO_TGL_OBJECT 
6184209BAEF1F731B937760C2BA8B45688 

MDSYS       SDO_TGL_OBJECT_ARRAY     2 
COLLECTION      VALID   3 
    alter type SDO_TGL_OBJECT_ARRAY modify limit 10000000 cascade 
6184209BAEF1F731B937760C2BA8B45688 


SQL> 

Find out more यह देख सकते ....।

+0

लेकिन, जहां तक ​​मुझे पता है, प्रकारों में विभाजन नहीं हो सकते हैं। इसलिए ऑब्जेक्ट एक प्रकार है जब इस कॉलम का मतलब कुछ और होना चाहिए, लेकिन मुझे किसी प्रकार के लिए इसका अर्थ क्या है, इस बारे में जानकारी नहीं मिल सकती है। – thecoop

संबंधित मुद्दे

 संबंधित मुद्दे