我写了一个递归函数来遍历我们其中一个表中的层次结构。它只是在层次结构的根处返回一个整数。这是代码:
USE `RevMatic_Viafield`;
DROP function IF EXISTS `getGroupProductCategory`;
DELIMITER $$
USE `RevMatic_Viafield`$$
CREATE DEFINER=`sync_talend`@`%` FUNCTION `getGroupProductCategory`(pIdProductCategory INT(11)) RETURNS int(11)
READS SQL DATA
BEGIN
DECLARE lIdProductCategory INT(11);
SELECT idParentProductCategory INTO lIdProductCategory
FROM Prod_ProductCategories
WHERE idProductCategory = pIdProductCategory
;
IF lIdProductCategory IS NULL THEN
RETURN (pIdProductCategory);
ELSE
SET lIdProductCategory = getGroupProductCategory(lIdProductCategory);
END IF;
RETURN (lIdProductCategory);
END$$
DELIMITER ;
这似乎编译运行没有错误,但它也没有返回任何内容,甚至不返回null:
SELECT RevMatic_Viafield.getGroupProductCategory(93);
和
SELECT RevMatic_Viafield.getGroupProductCategory(93)
FROM DUAL
;
不返回结果集。 MySql Workbench中的操作输出在响应列中显示OK。我似乎无法在代码中获得任何类型的调试语句。我该如何调试它以及我的结果集在哪里。我希望结果集中有一列的一行在列中具有空值或整数。