Olá. Eu estou tentando criar um Stored Procedure
pelo HeidiSql
. Está sendo acusado erro de sintaxe na linha 9:
Alguém tem alguma ideia do que eu possa ter feito de errado?
Olá. Eu estou tentando criar um Stored Procedure
pelo HeidiSql
. Está sendo acusado erro de sintaxe na linha 9:
Alguém tem alguma ideia do que eu possa ter feito de errado?
Embora a documentação do mysql diga que tanto = quanto := possam ser utilizadas para atribuição de valores, por que não usar apenas o = ?
Pela mensagem de erro (não contei os parênteses) o problema parece ser o := ou o fato de estar usando o toReturn naquele ponto.
Justamente porque eu estava usando, e pensei que esse fosse o erro, daí eu mudei.
Como assim? Preciso adicionar algum modificador de acesso em toReturn ou algo do tipo?
Não, não.
Apenas me baseei na mensagem de erro, que referia o erro naquela parte do código.
Resolvi usando SET ao invés de :=
BEGIN
DECLARE toReturn DECIMAL(6,2) DEFAULT 0;
DECLARE lucro DECIMAL(6,2) DEFAULT 0;
DECLARE rifa VARCHAR(20);
DECLARE meu_cursor CURSOR FOR SELECT lucro,nome FROM rifas;
OPEN meu_cursor;
loop1: LOOP
FETCH meu_cursor into lucro, rifa;
SET toReturn = (toReturn + (lucro * (SELECT COUNT(*) FROM rifas_vendidas WHERE rifa=rifa)));
END LOOP loop1;
RETURN (lucro + (SELECT SUM(ganho) FROM lanches_comprados) - (SELECT SUM(custo) FROM comprado));
END