select * from dbo.split(RTRIM(@importRow), '¬')
给出错误:
Msg 102, Level 15, State 1, Procedure proc_name, Line 40
Incorrect syntax near '('.
该行的正确语法是什么?我已经有一段时间没有正确执行 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)
......
最佳答案
将 RTRIM 移至 UDF 本身(基于注释)
无论如何,这是一个很好的做法,因此每次使用 split
UDF 都不需要 RTRIM
关于sql - 消息 102,级别 15,状态 1,过程 <procedure_name>,第 40 行 '(' 附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152703/