Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Damon4hire

stored procedure e funções

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.