Pengecualian ini dimunculkan setiap kali pernyataan SELECT INTO dieksekusi dan menemukan lebih dari satu baris. Pernyataan SELECT INTO mengharapkan untuk menemukan tepat satu baris, tidak lebih atau kurang - jika tidak, pengecualian akan muncul.
Dalam contoh Anda:
select PK into wsID from RPT_WEBSVC
where KEYVALUE = 'GetMachineNameList'
and category_fk = catID;
tampaknya hanya ada satu baris per kombinasi (KEYVALUE, CATEGORY_FK), tetapi kenyataannya tidak demikian. Jika seharusnya hanya ada satu maka tabel harus memiliki batasan unik pada kolom tersebut:
alter table RPT_WEBSVC add constraint RPT_WEBSVC_UK
unique (KEYVALUE, CATEGORY_FK);
Itu akan mencegah seseorang (atau beberapa proses) menambahkan baris yang sama lagi. Tentu saja Anda perlu menghapus duplikat tabel sebelum Anda dapat menambahkan batasan itu.