有時文檔意味着正是它所說的。
舉例來說,我有一張名爲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>
我覺得問題是使用「objects」這個詞。 Oracle來自面向對象編程之前的時間(如果你能想象這樣的事情)。它的數據字典使用「數據庫對象」來表示「事物」 - 表,視圖,序列,過程等。當Oracle將OOP引入數據庫時,它使用關鍵字TYPE
來處理這些新事物。因此,ALL_OBJECTS視圖是您的架構擁有權限的所有東西的列表,而不僅僅是用戶定義的類型。
編輯
只是要清楚,這有沒有關係類型的傳承。
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>
傳承由用戶/ ALL/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使用後,當我們執行一個ALTER TYPE時,Oracle會創建它的一個版本。我們可以在%_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。
來源
2010-01-28 06:55:29
APC
快速谷歌給我的印象是它的意思是子對象 – 2010-01-27 17:28:09
你的示例查詢使用ALL_TYPES而不是ALL_OBJECTS,這會混淆你的問題。 – APC 2010-01-28 07:15:51
哎呀,使用了錯誤的查詢:/ – thecoop 2010-01-28 08:27:41