oracle 存储过程中如何用ROWID
发布网友
发布时间:2022-04-23 09:49
我来回答
共1个回答
热心网友
时间:2022-04-07 21:14
1
一般说来,ROWID不是普通的字符串,所以,在与字符比较或做其它运算的时候,需要做转换.
即:
ROWIDTOCHAR
(x.ROWID)
or
CHARTOROWID(xxxxxxx)
这样转换过后,应当能解决你面临的问题.
2
剔重的过程一般要根据实际情况来做.
比如有完全相同的记录,有按条件相同的记录(不完全相同),有固定重复次数的情况,有不是固定重复次数的情况...根据不同的情况,可以采用相应的简便办法.
当然,你可以编制统一的剔重过程,就一劳永逸了.流程也很简单,按照你"关心"的条件进行排序,开游标去一条一条的取,第一条和第二条比,按条件相同,删除其中一条,比如删除第二条,那就还用第一条去和第三条比,..直到不同,再用这条不同的和它相临的下一条比,再比到不同....
如果是完全相同的情况.....
按全表所有字段分组,取每组最大或最小的....将此查询建立成新表即可..