DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN
           
	            BEGIN
					                 DECLARE crs CURSOR WITH RETURN FOR
					                 SELECT DISTINCT
								            dde.Name
								     FROM DDCLElement dde
								     WHERE dde.DdsTypeId = 10
								           AND dde.Id IN (SELECT * FROM SESSION.numeric_param_temp)
								           AND dde.id NOT IN
													    (
														   SELECT DISTINCT
																DDCLElementChild.Id
														   FROM DDCLElement dde1
															   INNER JOIN DDCLValue ddv ON dde1.Id = ddv.ElementId
															   INNER JOIN DDCLProperty ddp ON ddv.PropertyId = ddp.Id
															   INNER JOIN DDCLElement AS DDCLElementChild ON UPPER(ddv.ReferenceName) = UPPER(DDCLElementChild.Name)
														   WHERE ddv.ReferenceDdsTypeId = 10
															   AND ddv.ValueTypeId IN (2, 4)			
															   AND DDCLElementChild.Id IN (SELECT * FROM SESSION.numeric_param_temp)
															   AND (
															            (dde1.DdsTypeId = 11 AND UPPER(ddp.Name) IN ('CHANGES', 'OUTPUT', 'PARAMETERS', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW', 'VARIABLES'))
														              OR (dde1.DdsTypeId = 16 AND UPPER(ddp.Name) IN ('CHANGES', 'PROCESSING-STRUCTURE', 'SELECTION', 'SINGULAR-VIEW', 'VARIABLES'))
														              OR (dde1.DdsTypeId IN (27, 28) AND UPPER(ddp.Name) IN ('PARAMETERS', 'PROCESSING-STRUCTURE', 'SELECTION', 'VIEW', 'VARIABLES'))
																  )
													    )
								AND dde.id NOT IN
													    (
														   SELECT DISTINCT
																dde2.id
														   FROM DDCLElement dde2
															   INNER JOIN IdmsSubschemaSets iss ON UPPER(dde2.name) = UPPER(iss.SetName)
																						    AND dde2.ddstypeid = 10
															   INNER JOIN StatementReference sr ON iss.ID = sr.ResourceID
																							AND sr.ResourceType = 78
															   INNER JOIN OccurrencesStmt os ON os.OccurID = sr.OccurID
															   INNER JOIN Programs pgm ON pgm.ProgramID = os.ProgID
													    )
								ORDER BY dde.Name;
			           
								         
				                     OPEN crs;
				
                END;
END ss	




