2012-12-10 65 views
10

在Sql Developer下的表中,我看到了表,但其中一些表的名稱爲$。

例子:

tb$something 

是什麼 '$' 符號表的名字的時候是什麼意思?

+1

'Oracle'從'x $'結構創建'v $'視圖。實際的v $ view創建視圖定義位於'$ ORACLE_HOME/rdbms/admin目錄中',這樣你就可以看到'v $'視圖是如何構建在'x $'結構上的。 –

+1

我有時會使用$,例如'EMPLOYEE $ JN'是'EMPLOYEE'的日記表。唯一的缺點是創建表的腳本不能包含$或SQL * Plus抱怨它。 –

回答

9

這並不意味着什麼。因爲如果你想要的話,你可以創建帶有美元符號的表格(可能不推薦,因爲人們可能會認爲它們是oracle特殊表格)。

如果你指的是由SYSSYSTEM擁有的對象則Oracle命名其例如V$存儲結構的視圖(例如v$session)。但這些只是Oracle corp用於其對象的命名約定。

+1

> Oracle強烈建議您在非引用標識符中使用$和#。 http://docs.oracle.com/cd/E11882_01/server.112/e10592/sql_elements008.htm –

5

通常,這些表屬於「屬於」數據庫 - 或者是因爲它們是由一個預定義用戶(SYS,...)擁有的,或者是因爲Oracle使用它們進行家務管理,例如,對於

  • 全文索引(這些被命名爲DR $ ......)
  • 物化視圖日誌(這些被命名爲RUPD $ ...和MLOG $ ......)

,但你可以不依賴於這個規則,因爲(正如DazzaL已經提到的那樣),沒有任何東西阻止你創建名稱中帶有美元符號的自己的表。

8

包含前綴的表格V $是存儲易失性信息的表格。

易失性信息由Oracle實例在使用時生成(在使用中表示實例已啓動並正在運行)。易失性信息包括統計信息,用戶的會話信息,內存分配。