Bom dia,
Tenho uma function no MySQL onde no começo dela, entre outras coisas, tenho as declarações:
DECLARE var_formula varchar(500);
DECLARE ret_preco decimal(13,3);
DECLARE cursor CURSOR FOR
select CAST(var_formula as decimal(13,3)) as preco;
var_formula = '(10.00-4.50)*30/100'
E ai, eu gostaria que ao abrir o meu cursor, ele resolvesse essa expressão, então faço isso:
OPEN cursor;
FETCH cursor INTO ret_preco;
CLOSE cursor;
Incorrect decimal value: '' for column '' at row -1
Eu entendi o que está acontecendo, na verdade, qdo mando abrir o cursor, ele tá fazendo isso:
select CAST('(10.00-4.50)*30/100' as decimal(13,3)) as preco
select CAST((10.00-4.50)*30/100 as decimal(13,3)) as preco
Perceberam a sutileza dos MALDITOS apóstrofos?!
Enfim, eu entendi o que acontece, mas não estou achando forma de resolver. Alguém sabe como faço pra que ele substitua minha var_formula no select invés de usar como um valor varchar? :roll:
Se tiver algum ex clippeiro de plantão, pra resumir, eu diria que preciso de macro-substituição. Mas como?!
Grata,
Renata



Como vc acha que eu podia fazer isso?
