Deze uitzondering treedt op wanneer een SELECT INTO-instructie wordt uitgevoerd en meer dan één rij vindt. Een SELECT INTO-instructie verwacht precies één rij te vinden, niet meer of minder - anders wordt er een uitzondering gemaakt.
In jouw voorbeeld:
select PK into wsID from RPT_WEBSVC
where KEYVALUE = 'GetMachineNameList'
and category_fk = catID;
het lijkt erop dat er maar één rij per (KEYVALUE, CATEGORY_FK) combinatie zou moeten zijn, maar in feite is dat niet het geval. Als er maar één zou moeten zijn, zou de tabel een unieke beperking voor die kolommen moeten hebben:
alter table RPT_WEBSVC add constraint RPT_WEBSVC_UK
unique (KEYVALUE, CATEGORY_FK);
Dat zou voorkomen dat iemand (of een proces) dezelfde rij opnieuw toevoegt. Natuurlijk moet je de tabel ontdubbelen voordat je die beperking kunt toevoegen.