2013-05-15 4 views
8

나는 시도했다 :Oracle에서 SQL을 통해 테이블 ​​주석을 얻는 방법은 무엇입니까?

select * from user_tab_comments; 

을하고 3 열 "TABLE_NAME", "TABLE_TYPE"및 "댓글"저를 반환하지만 "TABLE_NAME"열 "암호화"처럼, 난 분명 테이블 이름이 필요합니다 :

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'은 휴지통에있는 객체입니다 (드롭 된 테이블, 시퀀스, 뷰 ...). 당신은 그들을 무시할 수 있습니다. 매뉴얼의 자세한 내용 : http://docs.oracle.com/cd/E11882_01/server.112/e25494/tables011.htm#ADMIN11679 –

답변

13

Oracle이 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' 또는 뭔가. 아니면 거기에 있습니까? –

관련 문제