跪求答案!JAVA中向ORACLE同时插入两个表,获得第一个表的主键,老提示无效的列类型,求高手解!
插2个表,我用批处理的方法,贴点大概的语句:pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS...
插2个表,我用批处理的方法,贴点大概的语句:
pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
然后处理完了ResultSet rsKey=pstmt.getGeneratedKeys(); //1
rsKey.next(); //2
int orderid = rsKey.getInt(1);//3
DEBUG结果是前面全没问题包括1,2两步都对的,并且rsKey.next()为TRUE。在执行第3步后跳到异常,提示
java.sql.SQLException: 无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.Accessor.unimpl(Accessor.java:357)
at oracle.jdbc.driver.Accessor.getInt(Accessor.java:467)
at oracle.jdbc.driver.OracleReturnResultSet.getInt(OracleReturnResultSet.java:265)
.....
很郁闷,弄了一整天了。不知道怎么回事。望高手解答,万谢啊
现在貌似找到问题根源了,我补充一下,我的主键是seq_id.nextval这样插入的,
我现在改成rsKey.next();
String id = rsKey.String(1);
int orderid=Integer.parseInt(id);
提示java.lang.NumberFormatException: For input string: "AAAM/wAAEAAAAHwAAB"
这个是什么格式啊??怎么处理?
而且这个seq_id.nextval 的值肯定是INT啊不需要转,关键是 我获取的主键怎么是这么一串 "AAAM/wAAEAAAAHwAAB" 很奇怪 展开
pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
然后处理完了ResultSet rsKey=pstmt.getGeneratedKeys(); //1
rsKey.next(); //2
int orderid = rsKey.getInt(1);//3
DEBUG结果是前面全没问题包括1,2两步都对的,并且rsKey.next()为TRUE。在执行第3步后跳到异常,提示
java.sql.SQLException: 无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.Accessor.unimpl(Accessor.java:357)
at oracle.jdbc.driver.Accessor.getInt(Accessor.java:467)
at oracle.jdbc.driver.OracleReturnResultSet.getInt(OracleReturnResultSet.java:265)
.....
很郁闷,弄了一整天了。不知道怎么回事。望高手解答,万谢啊
现在貌似找到问题根源了,我补充一下,我的主键是seq_id.nextval这样插入的,
我现在改成rsKey.next();
String id = rsKey.String(1);
int orderid=Integer.parseInt(id);
提示java.lang.NumberFormatException: For input string: "AAAM/wAAEAAAAHwAAB"
这个是什么格式啊??怎么处理?
而且这个seq_id.nextval 的值肯定是INT啊不需要转,关键是 我获取的主键怎么是这么一串 "AAAM/wAAEAAAAHwAAB" 很奇怪 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询