欢迎投稿

今日深度:

oracle sql clob查询重复数据,多字段

oracle sql clob查询重复数据,多字段


oracle sql clob查询重复数据,多字段
 
COMPARE 函數
clob字段在查询时是无法 group by 和 distinct 的,所以如果要根据clob查找重复的数据是很麻烦的,网上大多提出要用DBMS_LOB.SUBSTR 来解决,DBMS_LOB.SUBSTR 把clob转换成字符串段再进行group by,而且如果字数太多还得分段转换,这样操作起来太麻烦,而且容易出现 字符串缓冲区太小 的错误,在网上搜了好久,突然发现 Dbms_Lob.Compare 可以解决这个问题。
 
COMPARE 函數
COMPARE 函數會對給定偏移的給定長度的兩個大型物件,執行確切的逐位元組比較。
 
此函數傳回:
零,如果兩個大型物件於指定偏移的指定長度完全相同
非零,如果物件不相同
空值,如果 amount、offset_1 或 offset_2 小於零。
比較的大型物件的資料類型必須相同。
 
以下,是我最终的sql,remark是clob字段
 
1
Select * From Userinfo Where Id In(
2
    Select U.Id From Userinfo U,Userinfo User_Info
3
        Where U.Id!=User_Info.Id
4
        And U.Typeid=User_Info.Typeid
5
        And u.theTime=User_Info.theTime
6
        And u.createId=User_Info.createId
7
        And Dbms_Lob.Compare(u.Remark,User_Info.Remark)=0
8
        Group By u.Id
9
)Order By id;

 

 
 
 

www.htsjk.Com true http://www.htsjk.com/oracle/20702.html NewsArticle oracle sql clob查询重复数据,多字段 oracle sql clob查询重复数据,多字段 COMPARE 函數 clob字段在查询时是无法 group by 和 distinct 的,所以如果要根据clob查找重复的数据是很麻烦的,网上大多...
相关文章
    暂无相关文章
评论暂时关闭