1 /** SECTION END: CLEANUP **/
2
3 create procedure sp_jdbc_search_lob(
4 @lob_type int,
5 @search varbinary(16384),
6 @locator binary(24),
7 @pos bigint,
8 @result bigint output,
9 @isPattern int = 0,
10 @searchString varchar(16384) = null)
11 as
12 if @lob_type = 0
13 if @isPattern = 0
14 select @result = charindex(locator_literal(IMAGE_locator, @search), substring(locator_literal(IMAGE_locator, @locator), @pos, datalength(locator_literal(IMAGE_locator, @locator)) - @pos + 1)) + @pos - 1
15 else
16 select @result = charindex(@search, substring(locator_literal(IMAGE_locator, @locator), @pos, datalength(locator_literal(IMAGE_locator, @locator)) - @pos + 1)) + @pos - 1
17 else if @lob_type = 1
18 if @isPattern = 0
19 select @result = charindex(locator_literal(TEXT_locator, @search), substring(locator_literal(TEXT_locator, @locator), @pos, char_length(locator_literal(TEXT_locator, @locator)) - @pos + 1)) + @pos - 1
20 else
21 select @result = charindex(@searchString, substring(locator_literal(TEXT_locator, @locator), @pos, char_length(locator_literal(TEXT_locator, @locator)) - @pos + 1)) + @pos - 1
22 else
23 if @isPattern = 0
24 select @result = charindex(locator_literal(UNITEXT_locator, @search), substring(locator_literal(UNITEXT_locator, @locator), @pos, char_length(locator_literal(UNITEXT_locator, @locator)) - @pos + 1)) + @pos - 1
25 else
26 select @result = charindex(@searchString, substring(locator_literal(UNITEXT_locator, @locator), @pos, char_length(locator_literal(UNITEXT_locator, @locator)) - @pos + 1)) + @pos - 1
27
exec sp_procxmode 'sp_jdbc_search_lob', 'AnyMode'
go
Grant Execute on sp_jdbc_search_lob to public
go