2016-07-13 2 views
0

을 반환하지 내가이 문 ...오라클 SQL : ALL_TAB_COLUMNS이 유효 테이블

반환
SELECT table_name from all_tab_columns; 

...

내가 시도 할
X 

...

SELECT * FROM X; 

I ...

Table DNE 

무엇이 문제입니까?

+1

테이블이있는 스키마에 액세스 할 수있는 권한이 없을 수 있습니다. 그러나 모든 스키마의 모든 개체를 볼 수있는 권한이있을 수 있습니다. 또는 스키마 이름이있는 스키마 이름을 접두어로 사용해야 할 수도 있습니다. 문제가되는 테이블의 소유자는 누구이며 누가 로그인 했습니까? 고려해 보라 :'Select Owner, Table_name, user from all_tab_Columns;'owner <> 사용자 인 경우 접두어가 필요할 수도 있고 그렇지 않을 수도있다. – xQbert

+0

권한이있을 수 있습니다. 특히 X에 대해 다른 사용자를 얻고 있습니다. –

+2

그래서 'Select * from owner.X'를 쿼리하도록 쿼리를 변경하면 (owner는'owner '가 아닌 실제 값), 여전히 DNE를 얻으면 권한 문제 일 것입니다. 이제 결과를 얻으면 테이블 이름 접두사를 원하지 않으면 X가 Owner.x를 가리키는 동의어를 만들 수 있으므로 접두사가 필요 없습니다. – xQbert

답변

0

귀하의 사례는 다를 수 있지만, 내 경우에는 표 X의 내용이 Owner입니다.

이 액세스하려면, 나는, 당신은 말했다 테이블을 선택 할 수 있어야한다, 지금

SELECT * FROM Owner.X

에 쿼리를 변경 명령 ​​

새로운 사용자 정보와

SELECT Owner, Table_name FROM all_tab_columns

을 사용 .