Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Function: f_get_next_parent_ou_bu(bigint, bigint)
- -- DROP FUNCTION f_get_next_parent_ou_bu(bigint, bigint);
- CREATE OR REPLACE FUNCTION f_get_next_parent_ou_bu(bigint, bigint)
- RETURNS bigint AS
- $BODY$
- DECLARE
- pOuTypeBuId ALIAS FOR $1;
- pOuId ALIAS FOR $2;
- vResult bigint;
- vOuParentId bigint;
- vNextOuParentId bigint;
- vOuTypeId bigint;
- BEGIN
- SELECT A.ou_parent_id, A.ou_type_id INTO vOuParentId, vOuTypeId
- FROM t_ou A
- WHERE A.ou_id = pOuId;
- IF vOuParentId = -99 THEN
- IF vOuTypeId = pOuTypeBuId THEN
- vResult := pOuId;
- ELSE
- vResult := -99;
- END IF;
- ELSE
- SELECT A.ou_parent_id, A.ou_type_id INTO vNextOuParentId, vOuTypeId
- FROM t_ou A
- WHERE A.ou_id = vOuParentId;
- IF vOuTypeId = vOuTypeBuId THEN
- vResult := vOuParentId;
- ELSE
- SELECT f_get_next_parent_ou_bu(pOuTypeBuId, vNextOuParentId) INTO vResult;
- END IF;
- END IF;
- return vResult;
- END;
- $BODY$
- LANGUAGE plpgsql VOLATILE
- COST 200;
- ALTER FUNCTION f_get_next_parent_ou_bu(bigint, bigint)
- OWNER TO sts;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement