2017-03-09 1 views
0

특정 열 이름이있는 스키마에서 테이블을 찾으려고합니다. 그래서 나는 다음과 같은 스크립트를 사용하지만, 그것은 아무것도 반환하지 않습니다 열을 표시합니다 테이블 LATLONG_DETAILSELECTLATLONG_TYPE라고, 다른 한편으로아무것도 표시하지 않는 열을 찾으려면 쿼리?

select a.table_name, column_name,DATA_TYPE,DATA_LENGTH 
from all_tab_columns a,USER_ALL_TABLES u 
where a.TABLE_NAME=u.TABLE_NAME 
and column_name like '%LATLONG%' 
order by DATA_LENGTH desc; 

합니다.

그럼 왜이 테이블을 결과에 표시하지 않는 쿼리입니까?

모든 쿼리는 테이블 LATLONG_DETAIL이있는 스키마에서 실행됩니다.

감사합니다.

+1

보기가 약간 섞입니다. USER_ALL_TABLES 대신 ALL_TABLES를 시도하십시오. 후자는 현재 사용자가 소유 한 테이블에 대한보기를 제한합니다. – unleashed

+0

'table_name = 'LATLONG_DETAIL''이 (가) 반환하는 user_tables에서 select table_name을 (를) 반환합니까? 그렇지 않다면 대신'all_tables'을 시도하십시오. 그것도 작동하지 않으면'where' 절에서'upper (table_name)'을 시도하십시오. 당신이 찾은 것을 다시보고하십시오. – mathguy

+0

@ TheGrandDuke : 고마워요. USER_ALL_TABLES가 현재 사용자가 테이블로 제한한다는 것을 알지 못했습니다. ALL_TABLES가 작동했습니다. – rbhat

답변

1

당신은 LATLONG_DETAIL 테이블을 소유하고 있다고합니다. 내가 당신의 질의가 아무것도 리턴하지 않는 이유에 대해 생각할 수있는 유일한 다른 점은 열 이름이 대문자가 아 U니다. 이 쿼리가 아무것도 반환하지 않습니까?

SELECT a.table_name, column_name,DATA_TYPE,DATA_LENGTH 
    FROM all_tables u JOIN all_tab_columns a 
         ON u.table_name = a.table_name 
        AND u.owner = a.owner 
WHERE UPPER(column_name) LIKE '%LATLONG%'; 
+0

답장을 보내 주셔서 감사합니다. ALL_TABLES 사용이 효과적입니다. – rbhat

관련 문제