#user-defined-functions
Вопрос:
Почему вызов возвращает меня: Msg 208, Уровень 16, Состояние 1, Строка 1 Недопустимое имя объекта «udf_string». Когда звонок выглядит так:
select *
from [database].[udf_string]('Lorem ipsum dolor sit amet', ' ', 3)
Код UDF выглядит следующим образом:
alter FUNCTION [dbo].[udf_string]
(
@start_str varchar(130),
@split_str varchar(130),
@element_index int
)
RETURNS varchar(130)
AS
BEGIN
declare @final_str varchar(130)
select @final_str = concat_ws('',a_split.t_val ,'')
from (
SELECT value as t_val ,
ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS str_num
FROM STRING_SPLIT(@start_str, @split_str)
) a_split
where a_split.str_num = @element_index
return @final_str
END
Ответ №1:
Мой плохой, запрос должен выглядеть так:
select [database].[udf_string]('Lorem ipsum dolor sit amet', ' ', 3)
Потому что это не функция таблицы.