---返回字符串按照指定分隔符分割后的数组的长度CREATE function Get_StrArrayLength( @str varchar(1024), --要分割的字符串 @split varchar(10) --分隔符号)returns intasbegin declare @location int declare @start int declare @length int
set @str=ltrim(rtrim(@str)) set @location=charindex(@split,@str) set @length=1 while @location<>0 begin set @start=@location+1 set @location=charindex(@split,@str,@start) set @length=@length+1 end return @lengthend ;
----按照指定的分隔符分割字符串为数组形式,然后获取指定元素。注: 元素个数从1开始CREATE function Get_StrArrayStrOfIndex( @str varchar(1024), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元素)returns varchar(1024)asbegin declare @location int declare @start int declare @next int declare @seed int
set @str=ltrim(rtrim(@str)) set @start=1 set @next=1 set @seed=len(@split) set @location=charindex(@split,@str) while @location<>0 and @index>@next begin set @start=@location+@seed set @location=charindex(@split,@str,@start) set @next=@next+1 end if @location =0 select @location =len(@str)+1 --这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。 return substring(@str,@start,@location-@start)end ;
---测试。注意: P_GET_HttpRequestData 为sqlserver获取http请求数据的存储过程,在Sqlserver处理Http请求日志中有讲述。
CREATE PROCEDURE IPCC_IVR_QUERYCARDONECINFO(@dataStr VARCHAR(255),@dataIndex VARCHAR(4),@outText1 VARCHAR(255) OUT,@outText2 VARCHAR(255) OUT,@outText3 VARCHAR(255) OUT)ASBEGIN
DECLARE @returnText VARCHAR(500) DECLARE @status int DECLARE @urlStr VARCHAR(255) SET @urlStr = 'http://172.17.5.14:9090/df/sendDataToIVR.action?parametersStr='+@dataStr +'#'+@dataIndex+'&ifaceType=2';EXEC P_GET_HttpRequestData @urlStr, @status OUTPUT, @returnText OUTPUT; SET @outText1 = dbo.Get_StrArrayStrOfIndex(@returnText,',',1); SET @outText2 = dbo.Get_StrArrayStrOfIndex(@returnText,',',2); SET @outText3 = dbo.Get_StrArrayStrOfIndex(@returnText,',',3);END;
CREATE PROCEDURE IPCC_IVR_QUERYCARDONECINFO(@dataStr VARCHAR(255),@dataIndex VARCHAR(4),@outText1 VARCHAR(255) OUT,@outText2 VARCHAR(255) OUT,@outText3 VARCHAR(255) OUT)
AS
BEGIN
DECLARE @returnText VARCHAR(500)
DECLARE @status int
DECLARE @urlStr VARCHAR(255)
SET @urlStr = 'http://172.17.5.14:9090/df/sendDataToIVR.action?parametersStr='+@dataStr +'#'+@dataIndex+'&ifaceType=2';
EXEC P_GET_HttpRequestData @urlStr, @status OUTPUT, @returnText OUTPUT;
SET @outText1 = dbo.Get_StrArrayStrOfIndex(@returnText,',',1);
SET @outText2 = dbo.Get_StrArrayStrOfIndex(@returnText,',',2);
SET @outText3 = dbo.Get_StrArrayStrOfIndex(@returnText,',',3);
END;
---返回字符串按照指定分隔符分割后的数组的长度
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end ;
----按照指定的分隔符分割字符串为数组形式,然后获取指定元素。注: 元素个数从1开始
CREATE function Get_StrArrayStrOfIndex
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
return substring(@str,@start,@location-@start)
end ;
---测试。注意: P_GET_HttpRequestData 为sqlserver获取http请求数据的存储过程,在Sqlserver处理Http请求日志中有讲述。
CREATE PROCEDURE IPCC_IVR_QUERYCARDONECINFO(@dataStr VARCHAR(255),@dataIndex VARCHAR(4),@outText1 VARCHAR(255) OUT,@outText2 VARCHAR(255) OUT,@outText3 VARCHAR(255) OUT)
AS
BEGIN
DECLARE @returnText VARCHAR(500)
DECLARE @status int
DECLARE @urlStr VARCHAR(255)
SET @urlStr = 'http://172.17.5.14:9090/df/sendDataToIVR.action?parametersStr='+@dataStr +'#'+@dataIndex+'&ifaceType=2';
EXEC P_GET_HttpRequestData @urlStr, @status OUTPUT, @returnText OUTPUT;
SET @outText1 = dbo.Get_StrArrayStrOfIndex(@returnText,',',1);
SET @outText2 = dbo.Get_StrArrayStrOfIndex(@returnText,',',2);
SET @outText3 = dbo.Get_StrArrayStrOfIndex(@returnText,',',3);
END;
版权声明:本文为Z_Y_J_1_2_3原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。