Sempre que possível, evite usar
CURSORs
. SQL é projetado para fazer coisas em massa, não uma linha de cada vez. Estude construções como
INSERT INTO ... SELECT ...;
CREATE TABLE ... SELECT ...;
Por exemplo,
pods_cursor
provavelmente pode ser eliminado através de:INSERT INTO tblResultsErrors
(POD, QtyMeasured)
SELECT els.LocationCode, els.Quantity
FROM EnergyLocation el
RIGHT JOIN EnergyLocationSeries els
ON els.LocationCode = el.Code2 OR els.LocationCode = el.Codep
LEFT JOIN EnergyContract ec
on ec.LocationId = el.Id
WHERE el.Code2 IS NULL;
(Ai. Misturar DIREITO e ESQUERDO faz minha cabeça girar como a de uma coruja.)
Usando
OR
em ON
soa muito ineficiente. Qual é a intenção?