나는 csv 파일을 가지고 있으며이 데이터를 Oracle 데이터베이스로 가져 오려고합니다. 하지만 그 전에 'xyz'테이블이 데이터베이스에 존재하는지 여부를 확인하고 싶습니다.주어진 이름을 가진 테이블이 Java를 통해 oracle에 존재하는지 확인하는 방법은 무엇입니까?
나는 자바를 통해 그것을하고 싶다. 아무도 자바를 통해 그것을 어떻게하는지 안다?
나는 csv 파일을 가지고 있으며이 데이터를 Oracle 데이터베이스로 가져 오려고합니다. 하지만 그 전에 'xyz'테이블이 데이터베이스에 존재하는지 여부를 확인하고 싶습니다.주어진 이름을 가진 테이블이 Java를 통해 oracle에 존재하는지 확인하는 방법은 무엇입니까?
나는 자바를 통해 그것을하고 싶다. 아무도 자바를 통해 그것을 어떻게하는지 안다?
위키 백과에는 getting at oracle metadata에 대한 좋은 정보가 있습니다.
SELECT
COUNT(1)
FROM
ALL_TABLES
WHERE
TABLE_NAME = 'NAME_OF_TABLE'
NAME_OF_TABLE을 테이블 이름으로 바꾸고 1의 결과를 얻으면 테이블이 있습니다.
당신은 가능한 메타 데이터를 사용할 수 있습니다 :
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를 참조하십시오.
+1 -이 접근 방식은 Oracle과 관련이 없다는 이점이 있습니다. –
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();
}
}
당신은 단지 같은 더미 SQL 실행할 수 있습니다 : 당신이 좋아하는 어떤 예외하지 않는 경우 "ORA-00942 테이블 또는보기 나던 존재"
select from * 'xyz' where 1 = 2
을 다음 표는 존재한다.
또는 당신은 같은 우아한 방법 선택 : 돕는
select * from USER_OBJECTS where OBJECT_TYPE = 'TABLE' and OBJECT_NAME = 'xyz';
감사합니다! –