CHAMANDO UMA PROCEDURE DENTRO DE UMA FUNCTION

15/09/2022

0

Olá. Estou tentando realizar uma conversão numerica de um valor float para um valor formatado utilizando o FORMAT.
O objetivo da problemática é FAZER UMA FUNÇÃO QUE RECEBA UM VALOR FLOAT E RETORNE ELE FORMATADO PARA "MOEDA".
A forma que eu tentei realizar o procedimento foi a seguinte



CREATE PROCEDURE converteRealproc
@numero as float
AS
BEGIN
SELECT FORMAT(@numero,'c','PT-br') AS EXAMPLE1
END



CREATE FUNCTION converteREALF (@numero as float)
RETURNS TABLE
AS
BEGIN
RETURN EXEC converteRealprox @numero
END



Alguem poderia me dar uma luz?

Enjoy!



O problema é que a FUNCTION não consegue ser criada. Aparece o seguinte erro:

Msg 102, Nível 15, Estado 31, Procedimento converteREALF, Linha 8 [Linha de Início do Lote 0]
Sintaxe incorreta próxima a 'BEGIN'.
Juan Carlos

Juan Carlos

Responder

Posts

15/09/2022

Juan Carlos

Olá. Estou tentando realizar uma conversão numerica de um valor float para um valor formatado utilizando o FORMAT.
O objetivo da problemática é FAZER UMA FUNÇÃO QUE RECEBA UM VALOR FLOAT E RETORNE ELE FORMATADO PARA "MOEDA".
A forma que eu tentei realizar o procedimento foi a seguinte



CREATE PROCEDURE converteRealproc
@numero as float
AS
BEGIN
SELECT FORMAT(@numero,'c','PT-br') AS EXAMPLE1
END



CREATE FUNCTION converteREALF (@numero as float)
RETURNS TABLE
AS
BEGIN
RETURN EXEC converteRealprox @numero
END



Não consigo realizar a chamada EXEC dentro do RETURN da função. O problema é que a FUNCTION não consegue ser criada.
Aparece o seguinte erro:

Msg 102, Nível 15, Estado 31, Procedimento converteREALF, Linha 8 [Linha de Início do Lote 0]
Sintaxe incorreta próxima a 'BEGIN'.


Por favor, alguem poderia me dar uma luz?

Enjoy!
Responder

15/09/2022

Emerson Nascimento

mas a função FORMAT() já não faz isso que você quer?
não entendi a necessidade de recriar a roda.

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar