我试图创建一个存储过程或触发器,它将函数结果存储在变量中并将其插入表中。
这是解析原始数据的函数
ALTER FUNCTION [dbo].[ufn_Parserstring]
(@StringInput VARCHAR(max))
RETURNS @OutputTable TABLE ([String] VARCHAR(max))
AS
BEGIN
DECLARE @String VARCHAR(max)
WHILE LEN(@StringInput) > 0
BEGIN
SET @String = LEFT(@StringInput,
ISNULL(NULLIF(CHARINDEX(',', @StringInput) - 1, -1),
LEN(@StringInput)))
SET @StringInput = SUBSTRING(@StringInput,
ISNULL(NULLIF(CHARINDEX(',', @StringInput), 0),
LEN(@StringInput)) + 1, LEN(@StringInput))
INSERT INTO @OutputTable ([String])
VALUES (@String)
END
RETURN
END
在解析原始数据后,我将使用存储过程调用结果,该存储过程将结果存储在变量
中这是我尝试的存储过程
如果错误,请提出建议
declare @str2 varchar(max)
declare @account varchar(max)
declare @GPS varchar(max)
set @str2 = (SELECT TOP 1 smsmsg FROM GPRSIN)
set @account = (SELECT TOP 2 *
FROM
(SELECT
String, ROW_NUMBER() OVER (ORDER BY String desc) AS Rownumber
FROM [dbo].[ufn_Parserstring] ( replace(@str2,';',','))) results
WHERE results.Rownumber = 2)
set @GPS = (SELECT TOP 1 *
FROM
(SELECT
String, ROW_NUMBER() OVER (ORDER BY String desc) AS Rownumber
FROM [dbo].[ufn_Parserstring] (replace(@str2,';',','))) results
WHERE results.Rownumber = 1)
每当我尝试运行此操作时,我都会收到此错误
当EXISTS没有引入子查询时,只能在选择列表中指定一个表达式。
如果你需要流程,那么这里就是流程
351856040489593
241111
1R
141119040115
A
1422.1425N
12103.1746E
0.0
151
1.8
01000006
rawdata - >由函数解析器解析,得到如上所示的结果。 - >我试图做的SP会将查询结果存储到变量 - >将变量的值插入某个表(例如tblblablabla)
请帮助我们。
感谢。