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

जावा के माध्यम से ऑरैकल डीबी फ़ंक्शन में तिथियों की एक सूची पास करना

डेटाबेस फ़ंक्शंस में एक सरणी पास करने के कई तरीके हैं। एक सरल इस प्रकार है:

सबसे पहले आपको एक TABLE बनाना चाहिए अपना DB स्कीमा टाइप करें:

दिनांक तालिका के रूप में DATE_ARRAY प्रकार बनाएं; 

उसके बाद आपको एक FUNCTION write लिखना चाहिए इस नए प्रकार के इनपुट के साथ:

-- इनपुट ऐरे के उपयोग को प्रस्तुत करने के लिए एक डमी फंक्शन क्रिएट फंक्शन डेट_एरे_टेस्ट_फंक्शन (पी_डेटा इन DATE_ARRAY) रिटर्न इंटेगर इज टाइप कर आईएस रेफ कर्सर; मायकुर कर; Single_date DATE;BEGIN /* इस फ़ंक्शन के अंदर आप इनपुट पैरामीटर के साथ अपनी इच्छानुसार कुछ भी कर सकते हैं:p_data */ Open MyCur for SELECT * FROM table(p_data); सिंगल_डेट में लूप फ़ेच MyCur; MyCur% NOTFOUND होने पर बाहर निकलें; dbms_output.put_line (to_char (single_date)); अंत लूप; रिटर्न 0;END Date_Array_Test_Function; 

अब java . में आप एक सरणी इनपुट प्रकार के साथ ऐसे फ़ंक्शन को कॉल करने के लिए निम्न कोड का उपयोग कर सकते हैं:

आयात करें .sql.ARRAY; आयात oracle.sql.ArrayDescriptor; सार्वजनिक वर्ग मुख्य {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) SQLException फेंकता है {कनेक्शन सी =DriverManager.getConnection (यूआरएल, उपयोगकर्ता, पास); स्ट्रिंग क्वेरी ="शुरू करें?:=date_array_test_function (?); अंत;"; // अपरकेस "DATE_ARRAY" पर ध्यान दें ArrayDescriptor arrDescriptor =ArrayDescriptor.createDescriptor ("DATE_ARRAY", c); // परीक्षण तिथियां दिनांक [] इनपुट =नई तिथि [] {नई तिथि (System.currentTimeMillis ()), नई तिथि (System.currentTimeMillis ()), नई तिथि (System.currentTimeMillis ())}; ARRAY सरणी =नया ARRAY (गिरफ्तारी डिस्क्रिप्टर, सी, इनपुट); कॉल करने योग्य स्टेटमेंट सीएस =c.prepareCall (क्वेरी); cs.registerOutParameter(1, Types.INTEGER); // वापसी मूल्य cs.setObject (2, सरणी); // फ़ंक्शन का इनपुट cs.executeUpdate (); System.out.println(cs.getInt(1)); }}

आशा है कि यह मददगार होगा।

शुभकामनाएँ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पूर्व-निर्धारित सिस्टम फ़ंक्शन का उपयोग करके Oracle में एक सीमांकित स्ट्रिंग (या कॉलम) को पंक्तियों में बदलना

  2. जब बार-बार संसाधित किए जा सकने वाले आइटम के लिए ऑफ़सेट परिवर्तनशील होता है, तो मैं "अगला" ईवेंट कैसे प्राप्त करूं?

  3. इश्यू बिल्डिंग cx_Oracle - libclntsh.so.11.1 => नहीं मिला

  4. R12 . में J2EE (OC4J) के लिए Oracle के कंटेनर्स

  5. Oracle Apps R12 में SSL या TLS को सक्षम करना