【发布时间】:2019-05-12 04:48:25
【问题描述】:
我需要使用 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
有人可以指导我吗?
谢谢
【问题讨论】:
-
您可能使用的是过时的 JDBC 驱动程序,因为较新的驱动程序正确实现了
ROWID.toString() -
如您所见in the documentation - toString() 以特定于提供连接的驱动程序的形式返回其 ROWID 的内容,并且可能不是作为 ROWID 文字 .你真正想要得到什么?如果您尝试加载 ID 列 - 只需按列名进入
-
试试这个,看看它是否能打印出你想要的东西
System.out.println(new String(rowId.getBytes())); -
@a_horse_with_no_name 请告诉我正确的驱动程序。我可以使用哪个版本。
-
@PushpeshKumarRajwanshi 谢谢 ..这似乎有效,我能够获取值。
标签: java oracle jdbc oracle11g oracle10g