【发布时间】:2019-01-17 04:51:15
【问题描述】:
我正在调用一个存储过程,它返回行列表的 rowid。我无法在 Java 中存储实际的 rowid 值,因此我以后可以将该 rowid 用于后续更新语句。
例如:
Select name, age, ROWID, from myTable where rownum<20;
我可以存储姓名和年龄,但是当我尝试将 ROWID 存储在如下字符串中时:
setRowID(workTableResponseJson.getString("ROWID"));
public void setRowID(String rowid) {
this.rowid = rowid;
}
值不完全匹配。相反,我得到了一个类似 :oracle.sql.ROWID@123a123b
的值有谁知道如何在 Java 中正确存储 rowid 值,以便以后在后续语句中使用它?
谢谢。
编辑:APC 回答了以下问题,我已将其标记。谢谢。
问题在于查询本身。我需要改变:
select rowid
改为:
select ROWIDTOCHAR(ROWID)
java 然后能够将该值存储在字符串中。虽然,我不需要按照要求进行第二次修改,因为它目前在我仍然使用时有效:
update name='bob' where rowid=:rowid;
【问题讨论】:
-
您可能需要考虑存储 rowid 是否是一个好主意,如下所述:asktom.oracle.com/pls/asktom/…
标签: java sql oracle procedure rowid