Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在blob上选择distinct_Sql_Database_Oracle_Blob - Fatal编程技术网

Sql 在blob上选择distinct

Sql 在blob上选择distinct,sql,database,oracle,blob,Sql,Database,Oracle,Blob,是否有方法验证Oracle数据库中更多行中blob中的值是否相同?blob是同一列 我将blob的大小存储在另一列中,但我需要知道该值是否也相等 存储的值是一个序列化对象。我建议添加另一列,其中包含blob值的值。存储blob时,还可以使用SHA256计算散列值,并将其存储。当您以后需要不同的值时,您只需使用此新列。的可能重复。不幸的是,如果您要标识哪些行包含相同的值,则无法避免使用连接,句点。至少,在条件中添加对象列的大小,并确保它在任何索引(引用BLOB)中位于第一位-这应有助于进行比较(通

是否有方法验证Oracle数据库中更多行中blob中的值是否相同?blob是同一列

我将blob的大小存储在另一列中,但我需要知道该值是否也相等


存储的值是一个序列化对象。

我建议添加另一列,其中包含blob值的值。存储blob时,还可以使用
SHA256
计算散列值,并将其存储。当您以后需要不同的值时,您只需使用此新列。

的可能重复。不幸的是,如果您要标识哪些行包含相同的值,则无法避免使用
连接
,句点。至少,在条件中添加对象列的大小,并确保它在任何索引(引用
BLOB
)中位于第一位-这应有助于进行比较(通过消除大小不同的行)。如果使用联接,则没有问题。是否有任何特殊命令可以通过SQL命令直接计算现有blob值的哈希值?请阅读以了解如何在数据库中执行此操作。我建议您存储该哈希值,而不是每次都计算所有行的哈希值,因为这是一项昂贵的操作。我只想补充一点,您可以使用哈希并执行附加的相等条件,希望哈希将消除明显不同的blob,并且相等将防止您遭受哈希冲突。@DanielMošmondor如果您使用的哈希算法(如
SHA256
SHA512
)当前没有任何已知漏洞,我认为没有必要进行额外的平等性比较。此外,如果添加额外的相等比较,查询引擎将决定执行它们的顺序,并且可能在哈希比较之前结束。