您好我想比较同一列中的两个CLOBS。为此,我理解我必须先将它们转换为varchar。
我想从查询中检索的字符串总是具有一个字符串是另一个字符串的子集的结构。这意味着一个字符串包含另一个字符串。始终从1 ... n
开始因此,如果string1具有长度k并且string2具有长度n,则k <1。 n然后string2匹配string1到k。情况总是如此。 n!= k
无论如何,下面是我的代码,我无法相互映射CLOB。我从来没有得到任何结果。到目前为止,我的方法是将较长的字符串转换为较短的字符串,然后检查它们是否匹配。然而,这不起作用。我没有得到任何结果。
SELECT
s1.signaturedescription,
s2.signaturedescription,
s1.signdate,
s2.signdate
FROM
signature s1,
signature s2
WHERE
s1.signatureid = 'VerificationSignature'
AND
s2.signatureid = 'EbrCorrectActualValues'
AND
s1.username = s2.username
AND
dbms_lob.compare(s1.signaturedescription, s2.signaturedescription, 106, 1, 1) = 0;
上面的代码有效,但是我想用s1.signaturedescription的长度替换“106”。我通过执行以下操作尝试完成此操作:
dbms_lob.compare(s1.signaturedescription, s2.signaturedescription, length((TO_CHAR(SUBSTR(s1.signaturedescription,1,4000)))), 1, 1) = 0;
然而,这不起作用。我没有得到任何返回的结果。你知道如何将106更改为s1.signaturedescription的长度吗?
谢谢
答案 0 :(得分:0)