
java语言如何判断oracle是否存在某张表?急,求大神指点啊!!
Stringtname=“user”;Stringsql="ifexists(select1fromuser_tableswheretable_name='"+tname...
String tname=“user”; String sql="if exists(select 1 from user_tables where table_name='"+tname+"')";
Connection conn=null;Statement st =null;ResultSet rs =null;
try {conn =DBUtil.getConn(); st=conn.createStatement();rs=st.executeQuery(sql);
//如果表存在则直接往数据里插入数据
if(rs.next()){String sql1="insert into "+tname+" values(?,?,?,?,?,?)";} 这样错在哪,总是报无效的sql语句。 展开
Connection conn=null;Statement st =null;ResultSet rs =null;
try {conn =DBUtil.getConn(); st=conn.createStatement();rs=st.executeQuery(sql);
//如果表存在则直接往数据里插入数据
if(rs.next()){String sql1="insert into "+tname+" values(?,?,?,?,?,?)";} 这样错在哪,总是报无效的sql语句。 展开
3个回答
展开全部
public boolean validateTableExist(String tableName){
int result = 0;
String sql = "SELECT COUNT(*) FROM USER_OBJECTS WHERE OBJECT_NAME = UPPER('"+tableName+"')";
Connection conn = this.getSession().connection();
Statement st = null;
ResultSet rs = null;
try{
st = conn.createStatement();
rs = st.executeQuery(sql);
rs.next();
result = rs.getInt(1);
}catch(Exception e){
e.printStackTrace();
}finally{
this.util.closeAll(rs, st, conn);
}
return result==0?false:true;
}
JDBC的完整方法,CloseAll方法就不给你写了.如果表存在就返回True,不存在返回False,可以直接用在你的IF判断中:
if(validateTableExist(tname)){
String sql1="insert into "+tname+" values(?,?,?,?,?,?)";
....................
}
int result = 0;
String sql = "SELECT COUNT(*) FROM USER_OBJECTS WHERE OBJECT_NAME = UPPER('"+tableName+"')";
Connection conn = this.getSession().connection();
Statement st = null;
ResultSet rs = null;
try{
st = conn.createStatement();
rs = st.executeQuery(sql);
rs.next();
result = rs.getInt(1);
}catch(Exception e){
e.printStackTrace();
}finally{
this.util.closeAll(rs, st, conn);
}
return result==0?false:true;
}
JDBC的完整方法,CloseAll方法就不给你写了.如果表存在就返回True,不存在返回False,可以直接用在你的IF判断中:
if(validateTableExist(tname)){
String sql1="insert into "+tname+" values(?,?,?,?,?,?)";
....................
}
展开全部
可以用Oracle的辅助表 Select * from User_tables where table_name='xxxx' 如果返回结果为空, 说明表不存在
追问
我是用jdbc写的,该如何执行这句话呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 1 from user_tables where table_name='表名'
如果=1 表存在
如果=1 表存在
追问
我是用jdbc写的,该如何执行这句话呢?
追答
String tname=“user”;
String sql="select 1 from user_tables where table_name='"+tname;
Connection conn=null;Statement st =null;ResultSet rs =null;
try {conn =DBUtil.getConn(); st=conn.createStatement();rs=st.executeQuery(sql);
//如果表存在则直接往数据里插入数据
if(rs.next()){String sql1="insert into "+tname+" values(?,?,?,?,?,?)";}
和obj比较。主要代码就这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询