Posso chamar uma procedure via function
20/01/2016
0
Patrick
Posts
20/01/2016
Patrick
Olá, obrigado pela resposta, então eu já vi esse Link, mas infelizmente, não me ajudou muito... :c
20/01/2016
Marcos P
Após a chamada da procedure no corpo da Função, existe a necessidade de continuar executando os demais comandos ( se existirem ) da Função ?
Você chegou a simular algo nessa linha ? Obteve algum erro ? Qual ?
20/01/2016
Patrick
Após a chamada da procedure no corpo da Função, existe a necessidade de continuar executando os demais comandos ( se existirem ) da Função ?
Você chegou a simular algo nessa linha ? Obteve algum erro ? Qual ?
Não, minha ideia é além de passar os parâmetros na função, executar a Proc, no mais, a função só faria isso, não existe mais comandos na função (teoricamente falando).
Sobre ter obtido algum erro, não obtive nenhum pq não consegui simplesmente montar, já que nem sei se isso é possivel...
20/01/2016
Marcos P
Tente montar uma ambiente simples de teste para isso e se ocorrer algum erro, volte aqui que eu tento lhe ajudar.
21/01/2016
Patrick
Tente montar uma ambiente simples de teste para isso e se ocorrer algum erro, volte aqui que eu tento lhe ajudar.
Então, eu fiz uma function que chama minha proc pra testar, usando a seguinte sintaxe:
CREATE FUNCTION OLA ( @id int ) return table as begin EXEC TESTE @id return END
Porém, da erro: Msg 156, Level 15, State 1, Procedure OLA, Line 6
Incorrect syntax near the keyword 'return'.
Poderiam me ajudar?
21/01/2016
Marcos P
CREATE FUNCTION OLA (@id int) return char(2) as begin EXEC TESTE @id return ('OK') end
21/01/2016
Patrick
CREATE FUNCTION OLA (@id int) return char(2) as begin EXEC TESTE @id return ('OK') end
Então, não funcionou, e no mais, eu preciso retornar uma table, já que minha aplicação le só functions que retornam tabelas, com respetivos campos =/
Segue o Erro da sua query:
Msg 156, Level 15, State 1, Procedure OLA, Line 2 Incorrect syntax near the keyword 'return'. Msg 156, Level 15, State 1, Procedure OLA, Line 3 Incorrect syntax near the keyword 'as'. Msg 178, Level 15, State 1, Procedure OLA, Line 6 A RETURN statement with a return value cannot be used in this context.
21/01/2016
Marcos P
Comente a chamada à procedure... a chamada à função funciona, sem ela ?
21/01/2016
Patrick
Comente a chamada à procedure... a chamada à função funciona, sem ela ?
Não, não funciona também sem a chamada da PROC, a versão da base de dados da empresa utilizada é a 2005.
21/01/2016
Marcos P
CREATE FUNCTION OLA (@id int) returns char(2) as begin EXEC TESTE @id return ('OK') end
21/01/2016
Patrick
Bom, a função executou, porém deu erro na Proc, dizendo que não era uma procedure extendida, de qualquer forma, Obrigado a todos que ajudaram =)
Clique aqui para fazer login e interagir na Comunidade :)