select * from dbo.split(RTRIM(@importRow), '¬')
给出错误:
Msg 102,Level 15,State 1,Procedure proc_name,Line 40
附近的语法不正确
'('。
这条线的正确语法是什么?已经有一段时间了,因为我已经正确地完成了SQL,并且在我的生活中不能让这部分脚本执行!
使用SQL Server 2005
我为标题道歉。不太确定除了那个或“语法错误”之外要放什么!
编辑:SPLIT的代码:
CREATE FUNCTION [dbo].[Split]
(
@String VARCHAR(4000),
@Delimiter VARCHAR(5)
)
RETURNS @SplittedValues TABLE
(
OccurenceId SMALLINT IDENTITY(1,1),
SplitValue VARCHAR(4000)
)
AS
BEGIN
DECLARE @SplitLength INT
WHILE LEN(@String) > 0
BEGIN
SELECT @SplitLength = (CASE CHARINDEX(@Delimiter,@String) WHEN 0 THEN
LEN(@String) ELSE CHARINDEX(@Delimiter,@String) -1 END)
INSERT INTO @SplittedValues
SELECT SUBSTRING(@String,1,@SplitLength)
SELECT @String = (CASE (LEN(@String) - @SplitLength) WHEN 0 THEN ''
ELSE RIGHT(@String, LEN(@String) - @SplitLength - 1) END)
END
RETURN
END
GO
启动程序的代码
CREATE PROCEDURE dbo.[procedure]
-- Add the parameters for the stored procedure here
@RETURN_VALUE int,
@importRow VarChar(8000)
......
答案 0 :(得分:3)
将RTRIM移动到UDF本身(基于注释)
这是一种很好的做法,所以每次使用split
UDF都不需要RTRIM