Kdykoli je to možné, nepoužívejte CURSORs
. SQL je navržen tak, aby dělal věci hromadně, ne po jednom řádku.
Studujte konstrukty jako
INSERT INTO ... SELECT ...;
CREATE TABLE ... SELECT ...;
Například pods_cursor
lze pravděpodobně odstranit pomocí:
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;
(Au. Při míchání VPRAVO a VLEVO se mi hlava točí jako sova.)
Pomocí OR
v ON
zní velmi neefektivně. Jaký je záměr?