2011-03-12 2 views

답변

2

위키 백과에는 getting at oracle metadata에 대한 좋은 정보가 있습니다.

SELECT 
COUNT(1) 
FROM 
ALL_TABLES 
WHERE 
TABLE_NAME = 'NAME_OF_TABLE' 

NAME_OF_TABLE을 테이블 이름으로 바꾸고 1의 결과를 얻으면 테이블이 있습니다.

+0

감사합니다! –

5

당신은 가능한 메타 데이터를 사용할 수 있습니다 :

DatabaseMetaData meta = con.getMetaData(); 
    ResultSet res = meta.getTables(null, null, null, 
    new String[] {"TABLE"}); 
    while (res.next()) { 
    System.out.println(
     " "+res.getString("TABLE_CAT") 
     + ", "+res.getString("TABLE_SCHEM") 
     + ", "+res.getString("TABLE_NAME") 
     + ", "+res.getString("TABLE_TYPE") 
     + ", "+res.getString("REMARKS")); 
    } 

은 자세한 내용은 here를 참조하십시오.

+2

+1 -이 접근 방식은 Oracle과 관련이 없다는 이점이 있습니다. –

1
public class Main 
{ 

    public static void main(String[] args) throws Exception 
    { 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//server.local:1521/prod", "scott", "tiger"); 
    conn.setAutoCommit(false); 
    DatabaseMetaData dbmd = conn.getMetaData(); 
    ResultSet rset = dbmd.getTables("", "SCOTT", "EMP", null); 
    while (rs.next()) 
    { 
     System.out.println(rs.getString(3)); 
     //OR use whatever progmatically you want to do if table exist 
    } 
    stmt.close(); 
    } 
} 
2

당신은 단지 같은 더미 SQL 실행할 수 있습니다 : 당신이 좋아하는 어떤 예외하지 않는 경우 "ORA-00942 테이블 또는보기 나던 존재"

select from * 'xyz' where 1 = 2 

을 다음 표는 존재한다.

또는 당신은 같은 우아한 방법 선택 : 돕는

select * from USER_OBJECTS where OBJECT_TYPE = 'TABLE' and OBJECT_NAME = 'xyz'; 
관련 문제