locked
SQL Server Create Function com Erros RRS feed

  • Pergunta

  • Ola!
    Achei na internet exatamente o que procurava! Tipo 100% (coisa rara, né ?)
    Tenho receio de colocar o link aqui por conta de direitos autorais, etc... rsrs
    Li a toda a publicação... fecha com o que preciso, etc... mas infelizmente dá erro ao executar! 😞
    Agradeço ajuda

    use master
    
    -- código #3.5
    CREATE FUNCTION n_elemento_pont (
          @pTexto nvarchar(2000),
          @pSeparador nchar(1),
          @pElemento smallint
    )
    returns nvarchar(2000)
    begin
    	-- validação dos parâmetros
    	IF @pTexto is null
    		or len (@pTexto) = 0
    		or @pSeparador is null
    		or len (@pSeparador) = 0
    		or @pElemento is null
    		or @pElemento <= 0
    	return NULL
    	--
    	declare @Texto nvarchar(2000), @N int, @Pont1 int, @Pont2 int
    	set @Texto= @pTexto + @pSeparador
    	set @N= 1
    	set @Pont2= 0
    	while @N <= @pElemento begin
    		set @Pont1= @Pont2
    		set @Pont2= charindex (@pSeparador, @Texto, (@Pont1 +1))
    		IF @Pont2 = 0 or @Pont2 is null
    			break
    		set @N+= 1
    	end
    	--
    	IF @Pont2 = 0 or @Pont2 is null
    		return NULL
    	--
    	return substring (@Texto, (@Pont1 +1), (@Pont2 - @Pont1 -1))
    end

    quarta-feira, 8 de junho de 2022 10:34

Respostas

  • Testei também no versão 2012 e funcionou. está usando Express ?

    Tem permissão para criar funções ?

    Faça um teste, tente criar essa função:

    CREATE FUNCTION teste
    (
    	
    	@Param1 int
    )
    RETURNS int
    AS
    BEGIN
    	
    	DECLARE @ResultVar int	
    	RETURN @ResultVar
    
    END


    • Editado Edvaldo A quarta-feira, 8 de junho de 2022 13:00
    • Marcado como Resposta MLRamos quarta-feira, 8 de junho de 2022 13:43
    quarta-feira, 8 de junho de 2022 12:58

Todas as Respostas

  • Bom dia,

    Aqui funcionou.

    Qual é a versão do SQL Server que você está usando ?

    Pq está criando a função no Master ?

    quarta-feira, 8 de junho de 2022 11:06
  • ué!?
    O Server tem a versão 2012 ... será isso ?! 

    =(

    Ah! desculpe ... não respondi do master... 
    foi apenas uma tentativa, pois no BD de teste não funfou!


    • Editado MLRamos quarta-feira, 8 de junho de 2022 11:19 complementar
    quarta-feira, 8 de junho de 2022 11:12
  • Testei também no versão 2012 e funcionou. está usando Express ?

    Tem permissão para criar funções ?

    Faça um teste, tente criar essa função:

    CREATE FUNCTION teste
    (
    	
    	@Param1 int
    )
    RETURNS int
    AS
    BEGIN
    	
    	DECLARE @ResultVar int	
    	RETURN @ResultVar
    
    END


    • Editado Edvaldo A quarta-feira, 8 de junho de 2022 13:00
    • Marcado como Resposta MLRamos quarta-feira, 8 de junho de 2022 13:43
    quarta-feira, 8 de junho de 2022 12:58
  • Eeeee!

    Funcionou e funcionou a minha função também... 

    Quando "colei" numa nova query seu teste estava "ok"... mas estava no master!
    Daí inclui "use teste" (meu BD pra isso!) e daí já apareceu tudo sublinhado... sabe quando o SQL não reconhece a função... ?

    Então selecionei o BD e abri uma nova query (pra ele executar no BD teste) colei e executei com sucesso!

    Daí fiz com minha função da mesma forma e também funcionou, rsrsrs

    Resumindo não pode ter "nada" acima (nem use BD) pra executar! Estranho... né ?!

    Mas funfou... muito obrigado!

    quarta-feira, 8 de junho de 2022 13:43