一、V$視圖和X$視圖
普通的用戶不能訪問(wèn)V$視圖:
|
我們可以發(fā)現(xiàn),得到授權(quán)的普通用戶仍然只能訪問(wèn)V$開(kāi)頭的視圖,而不能直接訪問(wèn)V_$開(kāi)頭的視圖,因?yàn)閷?shí)際上V$視圖是V_$視圖的公有同義詞(PUBLIC SYNONYM)要想訪問(wèn)V_$必須帶上SYS.V_$。
例如:
|
與此同時(shí),也可以授予用戶SELECT any table權(quán)限,這樣這個(gè)用戶就可以訪問(wèn)所有的V$視圖:
|
通過(guò)查詢V$FIXED_TABLE視圖,我們可以看到大部分V$視圖和一些X$視圖(還有一些Oracle未公開(kāi)的視圖不在其中)。
有人要問(wèn),那么這些V$視圖又是有什么組成的呢?
通過(guò)查詢V$FIXED_VIEW_DEFINITION視圖,我們可以看到這些V$視圖的創(chuàng)建語(yǔ)句:
|
那么這個(gè)GV$FIXED_TABLE視圖的定義又是怎樣的呢?
|
此時(shí)我們就找到了創(chuàng)建一個(gè)V$視圖的最低層的信息,即一個(gè)V$視圖是由哪些X$表構(gòu)成的。
要找到底層X(jué)$表的索引信息,可以查詢v$indexed_fixed_column:
|
一般情況下,V$視圖和GV$視圖的定義是一樣的,只是GV$視圖中包含的實(shí)例id的信息,常用于OPS或者RAC的系統(tǒng)中,也有少數(shù)幾個(gè)V$視圖和GV$視圖的定義是有區(qū)別的,比如GV$PX_PROCESS和V$PX_PROCESS:
|
二、數(shù)據(jù)字典的組成
下面我們?cè)賮?lái)將一個(gè)數(shù)據(jù)字典表的定義呢?
|
三、如何查找用戶自定義的某個(gè)表的定義?
在Oracle 9i前,我們可以使用下面的方法:
|
從Oracle 9i開(kāi)始,我們可以使用dbms_metadata.get_ddl來(lái)找到對(duì)象的定義。
例如:
|
大家需要注意,這個(gè)查詢是需要臨時(shí)表空間的,所以如果臨時(shí)表空間不夠查詢就會(huì)有問(wèn)題了:
|
dbms_metadata.get_ddl也可以用來(lái)查詢其他對(duì)象的創(chuàng)建語(yǔ)句,使用的方法如下;
|
例如:
|
新聞熱點(diǎn)
疑難解答
圖片精選