我正在尝试从序列中获取生成的 key 。(使用 Servlet 和 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 文件)
提前致谢。
是否有另一种方法来获取查询中序列生成的值?
最佳答案
下载最新的 JDBC 驱动程序,我认为您至少需要 10.2.0.1 驱动程序,数据库也需要为 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");
}
关于java - SQLException : Unsupported feature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196982/