MySql存储函数不会抛出任何错误但返回没有输出无法调试它

时间:2015-08-05 21:34:50

标签: mysql mysql-workbench

我写了一个递归函数来遍历我们其中一个表中的层次结构。它只是在层次结构的根处返回一个整数。这是代码:

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。我似乎无法在代码中获得任何类型的调试语句。我该如何调试它以及我的结果集在哪里。我希望结果集中有一列的一行在列中具有空值或整数。

0 个答案:

没有答案