Fórum Erro ao converter de SQL Server para MySQl #594943
18/06/2018
0
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
Curtir tópico
+ 0Post mais votado
18/06/2018
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
Gostei + 1
Mais Posts
26/06/2018
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
Gostei + 0
27/06/2018
Maurício Kalfelz
<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 />
Caso tenha mais erros, informe o resultado deles.<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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)