2013-05-15 65 views
8

我已經試過:如何在Oracle中通過SQL獲取表註釋?

select * from user_tab_comments; 

,並返回我的3列「表格名」,「TABLE_TYPE」和「評論」,但「表格名」欄是像「加密」,我需要明確的表名:

TABLE_NAME      TABLE_TYPE COMMENTS 

BIN$IN1vjtqhTEKcWfn9PshHYg==$0 TABLE  Résultat d'intégration d'une photo numérisée 
BIN$PUwG3lb3QoazOc4QaC1sjw==$0 TABLE  Motif de fin d'agrément de maître de stage 

當我使用「select * from user_tables;」時TABLE_NAME不是「加密的」。

+0

可能需要設置一些DBA參數。它在這裏工作http://www.sqlfiddle.com/#!4/fbc1c/1 – ankurtr

+8

'BIN $ IN1vjtqhTEKcWfn9PshHYg == $ 0'是recyclebin中的一個對象(一個刪除的表,序列,視圖...)。你可以放心地忽略它們。手冊中的更多詳細信息:http://docs.oracle.com/cd/E11882_01/server.112/e25494/tables011.htm#ADMIN11679 –

回答

13

由於Oracle 10g在發出DROP TABLE語句時不會立即刪除表。相反,它將它們重命名爲BIN$IN1vjtqhTEKcWfn9PshHYg==$0,並將它們放入回收站中。這使我們能夠恢復我們不想丟棄的表格。 Find out more

回收站中的表仍然是表,所以它們顯示在ALL_TABLES和類似的視圖中。因此,如果您只想查看僅與實時(非刪除)表相關的註釋,則需要按表名稱篩選:

select * from all_tab_comments 
where substr(table_name,1,4) != 'BIN$' 
/
+2

我不相信沒有國旗列,所以你可以做'和is_recycled = 0'什麼的。或者在那裏? –

相關問題