मेरा मानना है कि नीचे दी गई क्वेरी काम करती है, मैंने परीक्षण नहीं किया है!
INSERT INTO Test (b)
SELECT * FROM
(
SELECT 'z' FROM dual
UNION ALL
SELECT 'zz' FROM dual
);
यकीन नहीं होता, अगर यह आपकी किसी भी तरह से मदद करता है।
के लिए, GENERATED ALWAYS AS IDENTITY Oracle आंतरिक रूप से केवल एक अनुक्रम का उपयोग करता है। और सामान्य अनुक्रम के विकल्प इस पर भी लागू होते हैं।
अगले उपलब्ध अनुक्रम को लाने के लिए NEXTVAL का उपयोग किया जाता है, और स्पष्ट रूप से यह एक छद्म स्तंभ है।
नीचे Oracle से है
आप CURRVAL . का उपयोग नहीं कर सकते और NEXTVAL निम्नलिखित निर्माणों में:
DELETEमें एक सबक्वेरी ,SELECT, याUPDATEबयान- किसी दृश्य या भौतिक दृश्य की क्वेरी
- DISTINCT ऑपरेटर के साथ एक सेलेक्ट स्टेटमेंट
- ग्रुप बाय क्लॉज या ऑर्डर बाय क्लॉज के साथ एक सेलेक्ट स्टेटमेंट
- एक
SELECTवह कथन जो दूसरेSELECT. के साथ संयुक्त है यूनियन के साथ स्टेटमेंट,INTERSECT, याMINUSसेट ऑपरेटर - एक सेलेक्ट स्टेटमेंट का WHERE क्लॉज
- किसी तालिका या वैकल्पिक तालिका विवरण में किसी स्तंभ का डिफ़ॉल्ट मान
- चेक बाधा की स्थिति
subquery और SET ऊपर दिए गए संचालन नियम को आपके प्रश्न का उत्तर देना चाहिए।
और NULL के कारण के लिए, जब pseudocolumn (उदाहरण के लिए NEXTVAL) का उपयोग SET ऑपरेशन या ऊपर उल्लिखित किसी अन्य नियम के साथ किया जाता है, आउटपुट NULL होता है, क्योंकि Oracle कई चयनों के संयोजन के साथ उन्हें प्रभावी रूप से नहीं निकाल सकता है।
आइए नीचे दी गई क्वेरी देखें,
select rownum from dual
union all
select rownum from dual
परिणाम है
ROWNUM
1
1