इस उदाहरण के लिए आपकी समस्या निश्चित रूप से USING सबक्वेरी में है। यह क्वेरी table2.column1
. के एक से अधिक मान उत्पन्न करती है :
SELECT DISTINCT table2.column1,
view1.column2
FROM SCHEMA2.TABLE_2 table2
LEFT JOIN SCHEMA2.VIEW_1 view1
ON table2.column2 = view1.column3
तो ON क्लॉज table1
. में उसी पंक्ति (पंक्तियों) से मेल खाएगा एक से अधिक बार:
ON (table1.column3 = t2.column1 )
Oracle यह पता नहीं लगा सकता कि t2.column2
. का कौन-सा मान है अद्यतन में उपयोग किया जाना चाहिए, इसलिए यह ORA-30926
को नुकसान पहुंचाता है ।
सबक्वायरी में विशिष्ट का उपयोग करने से मदद नहीं मिलती है क्योंकि यह सभी स्तंभों के क्रमपरिवर्तन देता है। आपको एक सबक्वेरी लिखनी होगी जो t2.column1
. के अद्वितीय मान उत्पन्न करेगी सभी पंक्तियों में, या एक अद्वितीय कुंजी उत्पन्न करने के लिए एक और पहचान कॉलम जोड़ें जिसे आप table1
में शामिल कर सकते हैं .