关于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'