Когда я пытаюсь вызвать определенные пользователем функции с помощью удаленного соединения, это дает мне ошибку.
Дело в том, что запрос без каких-либо функций отлично работает для удаленного подключения.
Итак, как я могу вызывать функции удаленно.
Запрос: select jobcardid,sonno,sonnumber,getSalesOrderCountByStatus('completed',1)as finished,getSalesOrderCountByStatus('pending',sonnumber)as inprocess,getSalesOrderCountByStatus('',1)as total from tblm_jobcard where sonnumber like 'A121';
Функция:
CREATE DEFINER=root@localhost FUNCTION getSalesOrderCountByStatus(v_status varchar(12), v_salesorderid integer) RETURNS int(11)
READS SQL DATA
BEGIN
DECLARE cnt integer(10);
if(length(v_status)>0) then
select count(1) into cnt from tblm_jobcard where sonno = v_salesorderid and status = v_status;
else
select count(1) into cnt from tblm_jobcard where sonno = v_salesorderid ;
end if;
RETURN cnt;
В удаленном соединении не получается ничего повесить.
попробовать
DELIMITER $$
CREATE FUNCTION getSalesOrderCountByStatus(v_status VARCHAR(12), v_salesorderid INTEGER) RETURNS INT(11)
BEGIN
DECLARE cnt INTEGER(10);
IF(LENGTH(v_status)>0) THEN
SELECT COUNT(1) INTO cnt FROM tblm_jobcard WHERE sonno = v_salesorderid AND STATUS = v_status;
ELSE
SELECT COUNT(1) INTO cnt FROM tblm_jobcard WHERE sonno = v_salesorderid ;
END IF;
RETURN cnt;
END$$
DELIMITER ;