The function name is STRING_SPLIT, not SPLIT_STRING, so your query should be:
SELECT v.value
FROM #FirstResult
CROSS APPLY STRING_SPLIT(Prov_Last_Name, '') AS v;
However, this will still fail because the separator argument cannot be empty ('') — SQL Server requires a non-empty delimiter. For example, to split a comma-separated list, you'd use:
SELECT v.value
FROM #FirstResult
CROSS APPLY STRING_SPLIT(Prov_Last_Name, ',') AS v;
If your goal is to split a string into individual characters, STRING_SPLIT won't work — it doesn't support splitting by an empty delimiter. You can do that using a numbers (tally) table or a small trick like:
SELECT SUBSTRING(Prov_Last_Name, n, 1) AS value
FROM #FirstResult
JOIN (
SELECT TOP (1000) ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS n
FROM sys.objects
) AS numbers
ON n <= LEN(Prov_Last_Name);
If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.
hth
Marcin