jdbc 连oracle 10g 的有关问题

jdbc 连oracle 10g 的问题
第一个是代码,第二个是控制台的语句。
我用控制台打印的sql语句在plsql developer上运行能出数据。但是rs.next()的结果却是false。

public String getPrimaryKey(String tableName) {
System.out.println(tableName+"123");
Connection con = null;
Statement stmt = null;
try {
con = DBPoolManager.getConn(this).getConnection();
con.setAutoCommit(false);
stmt = con.createStatement();
String sql = "select col.column_name "
+ "from user_constraints con, user_cons_columns col "
+ "where con.constraint_name=col.constraint_name and con.constraint_type='P' "
+ "and col.table_name='" + tableName.toUpperCase() + "'";
System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
 
rs.next();
//System.out.println(bb);
String primaryKey = rs.getString(1);
System.out.println(primaryKey);
rs.close();
stmt.close();
con.close();
return primaryKey;

} catch (SQLException e) {



TTT_TEST123
select col.column_name from user_constraints con, user_cons_columns col where con.constraint_name=col.constraint_name and con.constraint_type='P' and col.table_name='TTT_TEST'
java.sql.SQLException: 无效的列索引
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:378)
at org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:174)
at com.gap.database.OracleDB.getPrimaryKey(OracleDB.java:174)
at com.gap.database.OracleDB.createTrigger(OracleDB.java:196)
at com.gap.sync.SyncDBTask.CheckSyncDBInited(SyncDBTask.java:672)
at com.gap.sync.SyncDBTask.run(SyncDBTask.java:79)
java.sql.SQLException: ORA-00942: 表或视图不存在

------解决思路----------------------
楼主断点下,看着像是 ResultSet rs = stmt.executeQuery(sql); 这一行出的错。
检查下sql   
select col.column_name 
from user_constraints con, user_cons_columns col 
where con.constraint_name=col.constraint_name 
and con.constraint_type='P' 
and col.table_name='TTT_TEST'

看是否sql语句有问题,将sql语句直接拿到oracle客户端去执行下,看能否出结果
看错误,像是表名写错的样子