我需要使用Java从Oracle数据库中获取rowid。我使用了下面的代码。
Statement st = con.createStatement();
ResultSet rs=st.executeQuery("select * from ABC");
while(rs.next()) {
RowId str=rs.getRowId(1);
System.out.println(str);
}
我得到的结果是
oracle.sql.ROWID@2ce6c6ec
oracle.sql.ROWID@1bae316d
但是我需要像
这样的十六进制值AAAdItACwAABXcIAAA
有人可以指导我吗?
谢谢
答案 0 :(得分:3)
这将直接为您提供十六进制值
String hexValue = DatatypeConverter.printHexBinary(resultSet.getRowId(10).getBytes())
这是完整的代码
Statement st = con.createStatement();
ResultSet rs=st.executeQuery("select * from ABC");
while(rs.next())
{
String str= DatatypeConverter.printHexBinary(resultSet.getRowId(1).getBytes())
System.out.println(str);
}
答案 1 :(得分:0)
来自Java文档
检索RowId对象通过调用来检索java.sql.RowId对象 在接口ResultSet和中定义的getter方法 CallableStatement。返回的RowId对象是不可变的 可用于后续引荐的唯一对象 行的标识符。以下是调用 ResultSet.getRowId方法:
java.sql.RowId rowId_1 = rs.getRowId(1);
String toString() 返回一个String,它表示由此java.sql.RowId对象指定的SQL ROWID的值。