過去にこのサイトを使用してさまざまなことを支援しましたが、この場合、検索ボックスに何も見つからなかったので、これが他の場所にある場合は申し訳ありません.
SQL Server 2005 には、さまざまなコードを変更するストアド プロシージャがいくつかあります。最近では、定義された文字列にスペースを追加する関数を作成しました。したがって、理論的には、文字列を渡すと、結果が 4 のブロックとして得られます。これを手動で実行し、実際のテキストを定義すると、うまく分割されます (#### 0000 012 が返されます)。 SP 内で関数を実行すると、#### 0012 0012 が返されます。理由はありますか?
関数に渡される前に印刷コマンドを文字列に設定し、「####0000012」を印刷し、後の印刷は「#### 0012 0012」です
以下は、宣言なしの関数コードです。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[udf_addspaces](@string varchar(255),@lengthbetween int)
returns varchar(100)
as
BEGIN
declare @i int, @stringlen float, @output varchar(255), @outputofloop varchar(4)
set @stringlen = LEN(@string)/@lengthbetween
set @output =''
set @i = 0
while @i <= @stringlen
BEGIN
set @outputofloop = left(@string,@lengthbetween)
if @lengthbetween < LEN(@string)
BEGIN
set @string = right(@string,LEN(@string)-@lengthbetween)
END
set @output = @output + @outputofloop +' '
set @i = @i+1
END
return @output
END
これを実行する SP のビットは次のとおりです。
set @Consignment2 = (@Consignment) + rtrim(@Check14)
print @Consignment2
set @Consignment2 = dbo.udf_addspaces(@Consignment2,4)
print @Consignment2
印刷される行は次のとおりです。
####0000012
#### 0012 0012
よろしく、ルークM