(
IN p_RootID INTEGER
)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN
            
            DECLARE v_RootID INTEGER;
            SET v_RootID = p_RootID; 

	            BEGIN
					        DECLARE crs CURSOR WITH RETURN FOR
						         SELECT DISTINCT
							            sprd.RootID,
							            sprd.RulesetNo,
							            spcic.ClassNo,
							            spcic.CompositeNo,
							            sprw.RuleName,
							            spcd.ClassName,
							            spcic.TableName,
							            spcic.ParentClassNo,
							            ParentClassDefinition.ClassName ParentClassName
							     FROM SPNS_RulesetDefinition sprd
							          INNER JOIN SPNS_RuleWithinRulesetDefinition sprw ON sprd.RootID = sprw.RootID
							                                                             AND sprd.RulesetNo = sprw.RulesetNo
							          INNER JOIN SPNS_ClassInComposite spcic ON sprw.RootID = spcic.RootID
							                                                  AND sprw.TargetComposite = spcic.CompositeNo
							                                                  AND sprw.TargetClass = spcic.ClassNo
							          INNER JOIN SPNS_ClassDefinition spcd ON spcd.ClassNo = spcic.ClassNo
							                                                 AND spcd.RootID = spcic.RootID
							          LEFT OUTER JOIN SPNS_ClassDefinition AS ParentClassDefinition ON ParentClassDefinition.ClassNo = spcic.ParentClassNo
							                                                                         AND ParentClassDefinition.RootID = spcic.RootID
							     WHERE sprd.RootID = v_RootID
							          AND sprd.RulesetNo IN (SELECT * FROM SESSION.numeric_param_temp)
							          ;

				             OPEN crs;
				
                END;
END ss	




