GARANTIR DESCONTO

Fórum Erro ao converter de SQL Server para MySQl #594943

18/06/2018

0

Um amigo estava me ajudando em uma procedure, porém ele trabalha com SQL Server e o meu trabalho será em MYSQL está dando erro na procedure, alguém pode me ajudar?
DELIMITER $

CREATE  PROCEDURE ADICIONAR_VIAGEM(
	  IN pIDVIAGENS INT ,
	  IN pCIDADE VARCHAR(25) ,
	  IN pDATAHORAINICIO DATETIME ,
	  IN pDATAHORAFINAL DATETIME ,
	  IN pCOR VARCHAR(15) ,
	  IN pCEP CHAR(9) ,
	  IN pRUA VARCHAR(30),
	  IN pNUMERO VARCHAR(8) ,
	  IN pBAIRRO VARCHAR(25) ,
	  IN pESTADO CHAR(2) ,
	  IN pDESCRICAO VARCHAR(200),
	  IN pID_DADOSPESSOAS INT,
	  IN pID_MOTORISTA INT,
	  IN pID_VIATURA INT
	)
BEGIN
	
	DECLARE DisponibilidadeViatura   INT
	DECLARE DisponibilidadeMotorista INT 

	if exists (Select * from VIAGENS where ID_VIATURA = pID_VIATURA AND  pDATAHORAINICIO between DATAHORAINICIO and DATAHORAFINAL )
	set DisponibilidadeViatura = 0
	else
	set DisponibilidadeViatura = 1

/* Teste se o Motorista está disponivel para começar um trabalho na hora passada no parametro pDATAHORAINICIO*/

	if exists (Select * from VIAGENS where ID_MOTORISTA = pID_MOTORISTA AND  pDATAHORAINICIO between DATAHORAINICIO and DATAHORAFINAL )
	set DisponibilidadeMotorista = 0
	else
	set DisponibilidadeMotorista = 1
	
/* Se os 2 estiverem ok, executo o insert, se não eu retorno um select informando que a viatura ou o motorista encontra-se indisponivel na para inicio durante aquele periodo de tempo */
	if(DisponibilidadeViatura = 1 and DisponibilidadeMotorista = 1)
	
		INSERT INTO VIAGENS (IDVIAGENS, CIDADE, DATAHORAINICIO, DATAHORAFINAL, COR, CEP, RUA, NUMERO, BAIRRO, ESTADO, DESCRICAO, ID_DADOSPESSOAS, ID_MOTORISTA, ID_VIATURA)
                     VALUES (NULL,pCIDADE, pDATAHORAINICIO, pDATAHORAFINAL, pCOR, pCEP, pRUA, pNUMERO, pBAIRRO, pESTADO, pDESCRICAO, pID_DADOSPESSOAS, pID_MOTORISTA, pID_VIATURA);

	else
	Select ''Motorista ou Viatura indisponível na data/hora selecionada.'' as ''Error''

END
	$
Maurício Kalfelz

Maurício Kalfelz

Responder

Post mais votado

18/06/2018

Olá Maurício Kalfelz!

No final da sua declaração SELECT falta o delimitador que é o ;
else
    Select ''Motorista ou Viatura indisponível na data/hora selecionada.'' as ''Error'';
 
END
    $
delmiter ;


Caso tenha mais erros, informe o resultado deles.

Venancio Alves

Venancio Alves
Responder

Gostei + 1

Mais Posts

26/06/2018

Maurício Kalfelz

Olá Maurício Kalfelz!

No final da sua declaração SELECT falta o delimitador que é o ;
else
    Select ''Motorista ou Viatura indisponível na data/hora selecionada.'' as ''Error'';
 
END
    $
delmiter ;


Caso tenha mais erros, informe o resultado deles.

verdade amigo, mas mesmo assim da o seguinte erro
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE DisponibilidadeMotorista INT

if exists (Select * from VIAGENS whe' at line 20
acho que como meu amigo começou ele em SQL e uso o MYSQL tem erros de sintaxes
Responder

Gostei + 0

27/06/2018

Maurício Kalfelz

Olá Maurício Kalfelz!<br />
<br />
No final da sua declaração SELECT falta o delimitador que é o ;<br />
<br />
else<br />
    Select ''''Motorista ou Viatura indisponível na data/hora selecionada.'''' as ''''Error'''';<br />
 <br />
END<br />
    $<br />
delmiter ;<br />
<br />
<br />
Caso tenha mais erros, informe o resultado deles.<br />
<br />
<br />
o Novo erro é esse <br />
<br />
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''set DisponibilidadeViatura = 0<br />
else<br />
set DisponibilidadeViatura = 1<br />
<br />
if exists (S'' at line 23
Responder

Gostei + 0

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

Aceitar