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

चयन करें * तालिका से (पाइपलाइन फ़ंक्शन):क्या मैं परिणाम में पंक्तियों के क्रम के बारे में सुनिश्चित हो सकता हूं?

मुझे नहीं लगता कि दस्तावेज़ीकरण में कहीं भी ऐसा है जो गारंटी देता है जिस क्रम में डेटा वापस किया जाएगा।

एक पुराना टॉम काइट थ्रेड 2003 से (इसलिए हो सकता है पुराना हो) जिसमें कहा गया है कि निहित आदेश पर भरोसा करना उचित नहीं होगा, उन्हीं कारणों से जैसे आप साधारण SQL में ऑर्डर पर भरोसा नहीं करेंगे।

सुरक्षित रहने के लिए, आपको वही करना चाहिए जैसा आप हमेशा एक प्रश्न में करते हैं, यदि आप क्वेरी परिणामों का आदेश देना चाहते हैं, तो एक स्पष्ट ORDER BY बताएं।

यह कहने के बाद कि मैंने आपका कार्य लिया है और 10 मिलियन पुनरावृत्तियों को चलाया है, यह जाँचने के लिए कि क्या निहित आदेश कभी तोड़ा गया था; यह नहीं था।

SQL> begin
  2    for i in 1 .. 10000000 loop
  3      for j in ( SELECT a.*, rownum as rnum FROM table(temp_func()) a ) loop
  4
  5         if j.x <> j.rnum then
  6            raise_application_error(-20000,'It broke');
  7         end if;
  8      end loop;
  9    end loop;
 10  end;
 11  /

PL/SQL procedure successfully completed.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डिकोड उपनाम पर ORA-00904 अमान्य पहचानकर्ता

  2. क्या Oracle की तारीख'[yyyy-mm-dd]' शाब्दिक हमेशा yyyy-mm-dd पैटर्न का उपयोग करती है?

  3. SQLException:ORA-06550 जावा से PL/SQL फ़ंक्शन को कॉल करते समय

  4. डेटाबेस क्वेरी में पंक्तियों को लाते समय LIMIT क्लॉज का उपयोग किए बिना PHP का उपयोग करके परिणाम सीमित करना?

  5. पीएल/एसक्यूएल ट्रिगर एक टेबल पर INSERT से दूसरी टेबल अपडेट करने के लिए