2010-08-11 1 views
2

주어진 값에 대해 데이터베이스의 모든 테이블 이름과 열 이름을 가져 오려면 쿼리 (ORACLE)가 필요합니까?모든 테이블 이름과 열 이름을 가져 오도록 쿼리

예 : 값을 "TEST"로 지정하면 "TEST"값을 가진 모든 TABLE_NAMES 및 COLUMN_NAMES을 가져 오는 쿼리가 필요합니다.

+0

가능한 중복 http://stackoverflow.com/questions/208493/search-all-fields- 특정 값 - 오라클) –

+0

[SQL : 주어진 값 (열 내에서)의 열 목록 검색] 가능한 중복 (http://stackoverflow.com/questions/2140377/sql-search-a-row-of-a-row 내에서 주어진 값의 목록) – APC

답변

0

당신은 USER_TAB_COLUMNS 테이블

1
select table_name, null column_name from all_tables where table_name like '%TEST%' 
union all 
select null, column_name from all_tab_columns where column_name like '%TEST%'; 
0

이렇게하면 열 및 테이블과 뷰를 받아야 사용할 수 있습니다 : 당신이하지 않은 경우 당신은 또한 * 사전 뷰를 ALL_을 사용할 수 있습니다

SELECT 'Column: '||owner||'.'||table_name||'.'||column_name 
    FROM dba_tab_columns 
WHERE column_name = 'TEST' 
UNION ALL 
SELECT 'Table: '||owner||'.'||table_name 
    FROM dba_tables 
WHERE table_name = 'TEST' 
UNION ALL 
SELECT 'View: '||owner||'.'||view_name 
    FROM dba_views 
WHERE view_name = 'TEST'; 

주 DBA_ 뷰에 대한 액세스 권한은 있지만 액세스 권한이있는 객체 만 볼 수 있습니다.

1

다른 방법은 이러한 과정에서 바인딩 변수를 사용

정의 vSearch = '%의 TEST %'

'검색 값 입력'vSearch 숯불 프롬프트 동의 USER_TAB_COLS FROM

SELECT * 을 WHERE column_name LIKE '& & vSearch' OR 테이블 이름 LIKE '& & v 검색';

1

보기 특정 테이블 사용자 사용 "ALL_TAB_COLUMNS"특정 테이블 사용자 사용 설명하고자하는 경우

의 모든 열 "DESC TABLE_NAME을;" 친절

이 시도 ..

([특정 값 (오라클)에 대한 모든 테이블의 모든 필드를 검색]의
관련 문제