Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

D aniel

[Resolvido] Problema com CAST

Recommended Posts

Aqui no sistema, temos base Oracle, e SQL Server.

E os códigos precisam funcionar para os 2.

 

Estou com o seguinte codigo que funciona perfeitamente em ORacle

 

CEILING(DIVEZERO(CAST(ROW_NUMBER() OVER (PARTITION BY COCAPEDI.NUMEPEDI ORDER BY COCAPEDI.NUMEPEDI, FROMMVPE.ORDEMVPE,(SELECT MAX(PROD.NOMEPROD) FROM POCAPROD PROD WHERE FROMMVPE.CODIPROD = PROD.CODIPROD))AS INTEGER),23))|| '/' || CEILING(DIVEZERO(COUNT(COUNT(*)) OVER (PARTITION BY COCAPEDI.CODIPEDI),23))AS "Paginas"

 

Mas nao funciona em SQL Server por causa do '/'

 

Não é por causa dos || || por que o sistema converte tudo isso depois, quando executar.

 

Tentei colocar o CAST desta forma.

CAST(CEILING(DIVEZERO(CAST(ROW_NUMBER() OVER (PARTITION BY COCAPEDI.NUMEPEDI ORDER BY COCAPEDI.NUMEPEDI, FROMMVPE.ORDEMVPE,(SELECT MAX(PROD.NOMEPROD) FROM POCAPROD PROD WHERE FROMMVPE.CODIPROD = PROD.CODIPROD))AS INTEGER),23))AS varchar(10))|| '/' || CEILING(DIVEZERO(COUNT(COUNT(*)) OVER (PARTITION BY COCAPEDI.CODIPEDI),23))AS "Paginas"

 

Quando eu testo no sistema, informa que o SQL está correto.

MAs quando executo no Delphi, recebo a seguinte mensagem.

 

Conversion failed when converting date and/or time from character string

 

 

O que será que pode ser o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem certeza ?!

De forma nativa confesso desconhecer isto.

Só se foi programado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui arrumar, era problema em um outro campo.

 

O sistema converte tudo quando vai passar pro banco, por isso nao gera erro.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.