Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Damon4hire

stored procedure e funções

Recommended Posts

Damon4hire

boas pessoal

fiz este stored procedure, que utiliza uma de 4 funções diferentes, e deve de imediato retornar o valor

que essas funções devolvem

create procedure consultaFerias @dpto int, @mesAno nvarchar(10) as

if ( @dpto = 0 and LEN(@mesAno) = 4 ) return dbo.empresaAno( CAST( @mesAno as int ) )

if ( @dpto > 0 and LEN(@mesAno) = 4 ) return dbo.dptoAno( @dpto, CAST( @mesAno as int ) )

if ( @dpto = 0 and LEN(@mesAno) > 4 ) return dbo.empresaMes( @mesAno )

if ( @dpto > 0 and LEN(@mesAno) > 4 ) return dbo.dptoMes( @dpto, @mesAno )

Dá-me este erro:

Msg 245, Level 16, State 1, Procedure consultaFerias, Line 4
Conversion failed when converting the nvarchar value '0,1,1,1,0,0,0,0,0,0,0,0,' to data type int.

Já testei as funções utilizadas, estão todas a funcionar como devem, por isso não as postei aqui.

Se acharem que é preciso, eu ponho.

Agradeco a ajuda.

Share this post


Link to post
Share on other sites
AMateus

Boas,

'0,1,1,1,0.....' não é conversível para int :P

É o mesmo que tentares converter 'blablabla' para datetime. Simplesmente não dá!


R. Tape Loading Error

Share this post


Link to post
Share on other sites
Damon4hire

Certo mas o problema é que eu não quero converter para int,

nem escrevi código para tal.

Eu quero devolver o varchar que as funções devolvem.

Tal como disse, quando testei as funções separadamente, funcionam na perfeição,

e devolvem o varchar pretendido. O problema é que quando quero retornar o varchar

que a função retorna, dá-me aquele erro.

Share this post


Link to post
Share on other sites
antonioafonso

Desculpe, mas sem ver as funções que está a chamar, não posso ajudar?

As funções devolvem todas o mesmo tipo de dados?

Verifique isso, um stored procedure não pode devolver tipos de dados diferentes consuante os parametros de entrada.

Share this post


Link to post
Share on other sites
renafi

Mas se tu queres fazer returns dessa forma, não era suposto usares Funções??


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Share this post


Link to post
Share on other sites
Damon4hire

Ja vi o problema.

Sim as funções devolvem todas o mesmo tipo de dados.

O problema, e eu descobri isto recentemente, é que

o return de um stored procedure, por regra, só devolve números inteiros,

se eu quiser usar outro tipo de dados(varchar neste caso)

tenho de usar variáveis de output, portanto tive de fazer de novo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.