SQL Server中 image型別資料的比較

2022-03-13 10:23:49 字數 1171 閱讀 7143

不過image也是不支援like比較的。

那怎麼樣對資料庫中的做比較呢。

對於這種大型物件的處理,在oracle中有有專門的函式dbms_lob.compare,而sqlserver中沒有專門的處理函式,

只能通過使用substring函式一段一段的從image資料中擷取放到varbinary型別資料,最長8060位元組(8k),

然後再對varbinary型別資料進行比較。以下是乙個比較image的函式例子:

if object_id('compare_image') is not null drop function compare_image

gocreate function compare_image(@a1 image, @a2 image) returns int

-- if match, return 1

asbegin

declare @n int, @i int, @j int

declare @b1 varbinary(8000), @b2 varbinary(8000)

set @n = 1

if datalength(@a1) <> datalength(@a2) -- different length

set @n = 0

else

begin

set @i = 0

set @j = (datalength(@a1) - 1) / 8000 + 1

while @i <= @j

begin

set @b1 = substring(@a1, @i * 8000 + 1, case @i when @j then datalength(@a1) % 8000 else 8000 end)

set @b2 = substring(@a2, @i * 8000 + 1, case @i when @j then datalength(@a2) % 8000 else 8000 end)

if @b1 <> @b2

begin

set @n = 0

break

end

set @i = @i + 1

end

endreturn(@n)

endgo

內容來自本人qq空間於2009-6-17 16:10發表的日誌。。 網轉。

SQL Server中 image型別資料的比較

原文 sql server中 image型別資料的比較 不能比較或排序 text ntext 和 image 資料型別,除非使用 is null 或 like 運算子。不過image也是不支援like比較的。那怎麼樣對資料庫中的做比較呢。對於這種大型物件的處理,在oracle中有有專門的函式dbms...

C 操作SQL Server中的Image型別資料

該例子是乙個對sql server資料型別的乙個操作例子,具有寫入 讀取功能。1 準備資料庫 1 建立資料庫 test 2 建立表 table 1 分別有2個字段 id int photo image 如圖 2 用c 進行讀寫操作,完整 如下 using system using system.co...

C 操作SQL Server中的Image型別資料

該例子是乙個對sql server資料型別的乙個操作例子,具有寫入 讀取功能。1 準備資料庫 1 建立資料庫 test 2 建立表 table 1 分別有2個字段 id int photo image 如圖 2 用c 進行讀寫操作,完整 如下 csharp view plain copy print...