0

Im unable to call a user defined function in an sql query of sql server.

my qyery is

SELECT Empnum(delimeter_test) as del FROM FNSPLIT_TEST WHERE Len(delimeter_test) >1

and my function is

ALTER FUNCTION [dbo].[Empnum] (@RAWDATA NVARCHAR(300))
RETURNS VARCHAR(30)
AS
BEGIN 
DECLARE @TEMP1 NVARCHAR(300)
--DECLARE @TEMP2
IF(CHARINDEX('Disabled',@RAWDATA,1)) <> 0
BEGIN
    DECLARE SPLITTEXT CURSOR FOR 
    SELECT [item] FROM fnSplit(@RAWDATA,',')
--  SET @TEMP1=dbo.fnSplit(@RAWDATA,',')
    OPEN SPLITTEXT
    FETCH SPLITTEXT INTO @TEMP1
    CLOSE SPLITTEXT
    DEALLOCATE SPLITTEXT
--  INSERT INTO @EMPNUM1 SELECT @TEMP1
--  SET @TEMP1=dbo.fnSplit(@RAWDATA,',')
END
RETURN @TEMP1
END
Pratik
  • 30,639
  • 18
  • 84
  • 159
saichandan
  • 19
  • 2
  • 9

1 Answers1

1

For some reason UDF's require the schema name:

SELECT dbo.Empnum(delimeter_test) as del FROM FNSPLIT_TEST WHERE Len(delimeter_test) > 1

Also, here is a method of concatenating text strings without a cursor:

Concatenate many rows into a single text string?

Community
  • 1
  • 1
Nick.Mc
  • 18,304
  • 6
  • 61
  • 91