SQLException:不支持的功能

时间:2013-10-05 10:57:06

标签: java oracle servlets jdbc

我试图从sequnce获取Generated密钥。(使用Servlets& Oracle10)

以下是我的代码:

query ="insert into TABLE_NAME(COL1,COL2,COL3) values(sysdate,?,SEQ_NAME.nextval)";
PreparedStatement pstmt = con.prepareStatement(query,new String[]{"COL3"});  //Getting error on this line
pstmt.setString(1,Str2);
pstmt.executeUpdate();

ResultSet keyset = pstmt.getGeneratedKeys();
if(keyset.next())
{
    genKey = keyset.getString(1);
}

但是我得到了例外:

java.sql.SQLException: Unsupported feature

前几天这段代码运行正常。那么这段代码现在不起作用的原因可能是什么? (我没有更改JDBC驱动程序war文件)

提前致谢。

是否有其他方法可以获取查询中序列生成的值?

1 个答案:

答案 0 :(得分:1)

下载最新的JDBC驱动程序,我认为你至少需要10.2.0.1驱动程序,db也需要10.2 +

http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html

或首先获取序列值

String sqlForSeq = "select SEQ_NAME.NEXTVAL from dual";
ResultSet rs = stmt.executeQuery(sqlForSeq);
if (rs.next()) {
    logSeq = rs.getString("NEXTVAL");
}