oracle中FUNCTION FUN_GET函数转化mysql函数

问题相关代码,请勿粘贴截图

oracle中FUNCTION FUN_GET函数转化mysql函数

运行结果及报错内容

img

我的解答思路和尝试过的方法

以下是需要改的函数


CREATE OR REPLACE FUNCTION FUN_GET_ORG_ID (child_dept_id IN int
return int
is
retCode int:=-1;
BEGIN
  SELECT
    distinct dept_Id INTO retCode
  FROM
    t_Department_Info
  WHERE
    par_dept_id is null
    start with dept_Id = child_dept_id
    connect by prior par_dept_id = dept_Id;
RETURN (retCode) ;
END ;


我想要达到的结果

请问该怎么改

这题的解题关键点在于mysql没有start with

SELECT
    distinct dept_Id INTO
  FROM
    t_Department_Info
  WHERE
    par_dept_id is null
    start with dept_Id = '1'
    connect by prior par_dept_id = dept_Id;

这个sql是无法直接执行的,可以参考这个https://blog.csdn.net/qq_25857847/article/details/107784445

这个是我之前写的ysql递归sql,可以仿照看下
SELECT t2.COMID 
FROM
    (
        SELECT 
        @r AS _comcode,
        (SELECT @r := PARENTID FROM prpstest WHERE COMID = _comcode) AS PARENTID,
        @l := @l + 1 AS lvl
        FROM
        (SELECT @r := '21010101', @l := 0) vars, prpstest AS h
     ) t1
JOIN prpstest t2
ON t1._comcode = t2.COMID   ;