Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-01422 प्राप्त करने का कारण:सटीक फ़ेच रिटर्न अनुरोधित पंक्तियों की संख्या से अधिक है

यह अपवाद तब उठाया जाता है जब कोई चयन कथन निष्पादित किया जाता है और एक से अधिक पंक्ति पाता है। एक सेलेक्ट इनटू स्टेटमेंट में उम्मीद की जाती है कि वह बिल्कुल एक पंक्ति ढूंढेगा, अधिक या कम नहीं - अन्यथा एक अपवाद उठाया जाता है।

आपके उदाहरण में:

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);

यह किसी (या कुछ प्रक्रिया) को उसी पंक्ति को फिर से जोड़ने से रोकेगा। बेशक आपको उस बाधा को जोड़ने से पहले तालिका को डी-डुप्लिकेट करना होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्रॉन अभिव्यक्ति को दिनांक/समय प्रारूप में कनवर्ट करने के लिए SQL क्वेरी

  2. 24 घंटे के समय को 12 घंटे प्लस AM/PM इंडिकेशन Oracle SQL में बदलें

  3. रिकॉर्ड हटाएं नहीं बयान हटाएं

  4. R12.2 . में मैनेज सर्वर कैसे जोड़ें

  5. SQL:अन्यथा क्रमबद्ध परिणाम सेट का अपवाद