Es posible que ya haya resuelto esto, pero lo primero que noté sobre su procedimiento almacenado es que tiene una variable local con el mismo nombre que la variable de salida (parent_id
). Me parece que está configurando el valor de la variable local en lugar de la variable de retorno, por lo que la persona que llama nunca ve el valor correcto.
Quizás eliminando el parent_id
local la declaración de variables resolverá su problema.