我正在尝试做一些在我使用过的每个数据库中都有效的事情。我想从插入中获取生成的 key 。我有 oracle 12c 设置并有下表:

CREATE TABLE countyUsers (id integer GENERATED AS IDENTITY,first varchar(255),last varchar(255),email varchar(255),userName varchar(255),unisonFailedLogins number,unisonLastFailedLogin number,unisonLastSuccessLogin number); 

然后我运行插入并尝试使用 jdbc 瘦驱动程序获取生成的 key :

ps.executeUpdate(); 
ResultSet rs = ps.getGeneratedKeys(); 
if (rs.next()) { 
  long id = rs.getLong(1); 
} 

抛出数字格式异常。我可以得到一个rowid。返回的 key 是 AAAWyHAAGAAAFNAAA 而不是数字。我该怎么办?

谢谢

请您参考如下方法:

有同样的问题,解决方法是告诉Oracle返回哪一列:

String[] generatedKeyColumns = new String[]{"id"}; 
PreparedStatement ps = connection.prepareStatement(insertStatement, generatedKeyColumns); 
 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!