SQL Server 2005 で分割関数を作成しています。
while loop を使用して既に実行しています。
しかし、私はそれで満足していません。再帰関数を使ってやりたい。
私はすでにC#でそれを行っています。今、私は SQL SERVER 2005 で同じことをプロットしています。しかし、コンパイル エラーが発生しています。
これが私のコードです
ALTER FUNCTION [dbo].[fnSplit2]
(
@OLDSTRING AS VARCHAR(100),
@DELIMETER AS VARCHAR(1)
)
RETURNS @MYTABLE TABLE(COUNTER INT,STRINGVAL VARCHAR(100))
AS
Begin
DECLARE @NEWSTRING AS VARCHAR(100)
DECLARE @POS AS INT
DECLARE @LEN AS INT
DECLARE @COUNTER AS INT
SET @NEWSTRING = '';
SET @LEN = LEN(@OLDSTRING)
SET @COUNTER = 0
SET @POS = CHARINDEX(@DELIMETER, @OLDSTRING)
IF(@POS > 0)
BEGIN
SET @COUNTER = @COUNTER +1
INSERT INTO @MYTABLE(COUNTER,STRINGVAL) VALUES(@COUNTER,@NEWSTRING + SUBSTRING(@OLDSTRING,0, @POS))
SET @OLDSTRING = SUBSTRING(@OLDSTRING,0, @POS)
fnSplit2(@OLDSTRING,@DELIMETER);
END
ELSE
BEGIN
SET @COUNTER = @COUNTER +1
INSERT INTO @MYTABLE(COUNTER,STRINGVAL) values(@COUNTER,@OLDSTRING)
END
RETURN
END
エラーは次のとおりです。メッセージ 102、レベル 15、状態 1、手順 fnSplit2、行 38 'fnSplit2' 付近の構文が正しくありません。
SQL SERVER で再帰テーブル値関数を使用できませんか?
Googleで検索したところ、スカラー値の再帰関数が可能であることがわかりましたか?
コードを提供すると同時に、私が犯している間違いを教えてください.
どんな助けにも感謝します!