यह अपवाद तब उठाया जाता है जब कोई चयन कथन निष्पादित किया जाता है और एक से अधिक पंक्ति पाता है। एक सेलेक्ट इनटू स्टेटमेंट में उम्मीद की जाती है कि वह बिल्कुल एक पंक्ति ढूंढेगा, अधिक या कम नहीं - अन्यथा एक अपवाद उठाया जाता है।
आपके उदाहरण में:
select PK into wsID from RPT_WEBSVC
where KEYVALUE = 'GetMachineNameList'
and category_fk = catID;
ऐसा प्रतीत होता है कि प्रति (KEYVALUE, CATEGORY_FK) संयोजन में केवल एक पंक्ति होनी चाहिए, लेकिन वास्तव में ऐसा नहीं है। यदि केवल एक ही होना चाहिए तो तालिका में उन स्तंभों पर एक अद्वितीय बाधा होनी चाहिए:
alter table RPT_WEBSVC add constraint RPT_WEBSVC_UK
unique (KEYVALUE, CATEGORY_FK);
यह किसी (या कुछ प्रक्रिया) को उसी पंक्ति को फिर से जोड़ने से रोकेगा। बेशक आपको उस बाधा को जोड़ने से पहले तालिका को डी-डुप्लिकेट करना होगा।