मैं यहाँ आया था और जवाब से ऊपर का पालन कम कॉलम होने तालिका के लिए अशक्त के रूप में अतिरिक्त कॉलम जोड़ें। लेकिन डेटा प्रकार के आदेश में मेल नहीं खाता एक त्रुटि हुई। दूसरे उत्तर से नीचे दिया गया वर्णन आसान होगा।
क्या परिणाम आपकी तालिका में कॉलम के अनुक्रम के समान हैं? क्योंकि ओरेकल कॉलम ऑर्डर में सख्त है। नीचे दिए गए इस उदाहरण एक त्रुटि पैदा करता है:
create table test1_1790 (
col_a varchar2(30),
col_b number,
col_c date);
create table test2_1790 (
col_a varchar2(30),
col_c date,
col_b number);
select * from test1_1790
union all
select * from test2_1790;
ORA-01,790: अभिव्यक्ति इसी अभिव्यक्ति
रूप में एक ही डेटाप्रकार होनी चाहिए जैसा कि आप देख त्रुटि का मूल कारण बेमेल स्तंभ आदेश है कि निहित है में है कॉलम सूची विनिर्देशक के रूप में * के उपयोग से। त्रुटियों के इस प्रकार आसानी से स्पष्ट रूप से स्तंभ सूची में प्रवेश से बचा जा सकता:
चयन col_a, col_b, col_c test1_1790 संघ से सभी चयन col_a, col_b, test2_1790 से col_c; इस त्रुटि के लिए एक अधिक लगातार परिदृश्य है जब आप अनजाने में चयन सूची में स्वैप (या पाली) दो या अधिक स्तंभों है:
select col_a, col_b, col_c from test1_1790
union all
select col_a, col_c, col_b from test2_1790;
या अगर इसके बाद के संस्करण, आपकी समस्या का समाधान नहीं होता है कि कैसे एक उपनाम बनाने के बारे में इस तरह स्तंभों में: (क्वेरी नहीं एक ही तुम्हारा के रूप में है, लेकिन यहां मुद्दा यह कॉलम में उपनाम जोड़ने के लिए कैसे है।)
SELECT id_table_a,
desc_table_a,
table_b.id_user as iUserID,
table_c.field as iField
UNION
SELECT id_table_a,
desc_table_a,
table_c.id_user as iUserID,
table_c.field as iField
क्या नल कॉलम के लिए डिफ़ॉल्ट मान भरने का कोई तरीका है? – Hans
@ हंस: आप कॉलमनाम या इस्नुल (कॉलमनाम, '-') के रूप में कॉलमनाम या कुछ समान के रूप में isnull (ColumnName, 0) जैसे कुछ कर सकते हैं। – Kangkan
आप यह भी कर सकते हैं: 'कुछ कस्टम मान' का चयन करें [Col1] ... –