IP アドレスを 4 つの異なる列に分割するストアド プロシージャを作成しました。
ALTER PROCEDURE ipaddress_split
(
@str as varchar(max)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @query as varchar(max)
SET @query = 'SELECT parsename('+@str+',4) as A
, parsename('+@str+',3) as B
, parsename('+@str+',2) as C
, parsename('+@str+',1) as D';
EXEC (@query)
SET NOCOUNT off
END
ただし、パラメーターを渡すとエラーが発生します。
EXEC ipaddress_split @str='191.168.1.1'
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.1'.
以下のすべての組み合わせを試しましたが、成功しませんでした。
exec ipaddress_split '191.168.1.1'
exec ipaddress_split 191.168.1.1
exec ipaddress_split ('191.168.1.1')
パラメータをストアドプロシージャに渡す適切な方法は何ですか?