DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN


	            BEGIN
					    DECLARE crs CURSOR WITH RETURN FOR
						SELECT DISTINCT
					            par.ParaID,
					            par.ParaName,
					            pgm.ProgramTypeID,
					            os.StatementType,
					            os.StartRow,
					            os.EndRow,
					            os.StartCol,
					            os.EndCol,
					            pth.PathStr AS CallingPath,
					            pgm.ProgramID,
					            pgm.ProgramName,
					            sr.ResourceID,
					            sr.ResourceType,
					            sr.bRead
					     FROM OccurrencesStmt os
					         INNER JOIN (   
										   SELECT p.ProgramID,
												 --p.Ancestor,
												 p.ProgramTypeID,
												 --p.OccurID,
												 pa.AliasName AS ProgramName
										   FROM Programs p
											  INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId AND pa.AliasType = 0
										  WHERE UPPER(p.ProgramName) IN (SELECT UPPER(Param) FROM SESSION.string_param_temp)
										) pgm ON os.ProgID = pgm.ProgramID
					          INNER JOIN StatementReference sr ON os.OccurID = sr.OccurID
					          LEFT OUTER JOIN Paragraphs par ON os.ParaID = par.ParaID
					          INNER JOIN Paths pth ON pth.PathID = os.PathID
					     WHERE sr.ResourceType IN (61, 56, 77, 78, 6, 14, 1, 79, 81, 69, 72, 95, 18, 19, 21, 182, 189, 190, 62, 193)  			  
					     ORDER BY os.StartRow;

				       OPEN crs;
				
                END;
END