我试图从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文件)
提前致谢。
是否有其他方法可以获取查询中序列生成的值?
答案 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");
}