我正在尝试做一些在我工作过的每个数据库中都能工作的事情。我想从插入中获取生成的键。我已经安装了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);然后,我运行一个insert,并尝试使用jdbc瘦驱动程序获取生成的键:
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if (rs.next()) {
long id = rs.getLong(1);
}这会抛出数字格式异常。不过,我可以得到一个rowid。返回的关键字是AAAWyHAAGAAAAFNAAA,而不是数字。我该拿这个做什么?
谢谢
发布于 2019-03-15 16:23:43
有相同的问题,解决方案是告诉Oracle返回哪一列:
String[] generatedKeyColumns = new String[]{"id"};
PreparedStatement ps = connection.prepareStatement(insertStatement, generatedKeyColumns);https://stackoverflow.com/questions/42566782
复制相似问题