关于oracle和jdbc中rowid格式的转化

Oracle数据表在设计时没有放置主键字段,现要对表进行修改删除操作,只能考虑用rowid来唯一标识行。

查询SQL如下:

select t.*, t.rowid from t_demo t

用ResultSet得到的结果是如下形式:

ROWID=oracle.sql.ROWID@8d5a91
ROWID=oracle.sql.ROWID@3508c0
ROWID=oracle.sql.ROWID@1d183b7
ROWID=oracle.sql.ROWID@1e937f

很显然是格式转化的问题,上网查了资料找到了rowidtochar这个函数,把rowid转换成char类型,问题解决。

1. 查询列表时:

select t.*, rowidtochar(t.rowid) as strrowid from t_demo t

2. 获取行记录时:

select t.* from t_demo t where rowidtochar(t.rowid)='AAAIKTAAJAAALnHAAA'

原文地址:https://www.cnblogs.com/qumao5736/p/1613682.html