Criei uma função no MySql que é o seguinte:
DELIMITER //
CREATE FUNCTION setZerdoIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);
IF n IS NULL THEN SET s = '0';
ELSE SET s = n;
END IF;
RETURN s;
END //
DELIMITER ;
No meu MySQL: 5.0.51a funcionou, porém na outra máquina com o MySQL: 5.0.37 da um erro.
Parece haver um erro na sua consulta SQL. A saída do servidor MySQL abaixo, isto se existir alguma, também poderá ajudar a diagnosticar o problema.
ERROR: String de pontuação desconhecida @ 11
STR: //
SQL: DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
DECLARE s INT(10);
consulta SQL:
DELIMITER // CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10) BEGIN DECLARE s INT(10);
Mensagens do MySQL : Documentação
#1064 - 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 'DELIMITER //
CREATE FUNCTION setZeroIfNull(n INT) RETURNS int(10)
BEGIN
D' at line 1
Eu aprendi ontem a mexer com isto e não sei se é erro meu ou incompatibilidade entre versões (o que acho improvável)
Poderiam me indicar onde está o erro para que eu possa procurar a solução?
OBrigado