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

जावा में PostgreSQL से सेटऑफ़ refcursor लौटाने वाली प्रक्रिया का उपयोग कैसे करें?

returns setof refcursor इसका मतलब है कि आपको एक नियमित ResultSet मिलता है जहां प्रत्येक "पंक्ति" में दूसरी है getObject() को कॉल करते समय रिजल्टसेट करें :

निम्नलिखित मेरे लिए काम करता है:

ResultSet rs = stmt.executeQuery("select * from usp_sel_article_initialdata_new1()");
if (rs.next())
{
  // first result set returned
  Object o = rs.getObject(1);
  if (o instanceof ResultSet)
  {
    ResultSet rs1 = (ResultSet)o;
    while (rs1.next())
    {
       int id = rs1.getInt(1);
       String name = rs1.getString(2);
       .... retrieve the other columns using the approriate getXXX() calls
    }
  }
}

if (rs.next()) 
{
  // process second ResultSet 
  Object o = rs.getObject(1);
  if (o instanceof ResultSet)
  {
    ResultSet rs2 = (ResultSet)o;
    while (rs2.next())
    {
       ......
    }
  }
}

psql . के भीतर से आप उपयोग भी कर सकते हैं select * from usp_sel_article_initialdata_new1() से * चुनें आपको बस FETCH ALL . का उपयोग करने की आवश्यकता है उसके बाद। उदाहरण के लिए मैनुअल देखें:http://www। postgresql.org/docs/current/static/plpgsql-cursors.html#AEN59018

postgres=> select * from usp_sel_article_initialdata_new1();
 usp_sel_article_initialdata_new1
----------------------------------
 <unnamed portal 1>
 <unnamed portal 2>
(2 rows)

postgres=> fetch all from "<unnamed portal 1>";
 ?column?
----------
        1
(1 row)

postgres=> fetch all from "<unnamed portal 2>";
 ?column?
----------
        2
(1 row)

postgres=>

(मैंने उपरोक्त उदाहरण के लिए एक डमी फ़ंक्शन बनाया है जो केवल 1 मान के साथ एक पंक्ति देता है पहले कर्सर और 2 . के लिए दूसरे कर्सर के लिए)

संपादित करें :

इसे काम करने के लिए, इसे लेनदेन के अंदर चलाने की जरूरत है। इसलिए ऑटोकॉमिट को बंद कर देना चाहिए:

connection.setAutoCommit(false);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में ऑटो इंक्रीमेंट प्राथमिक कुंजी कैसे सेट करें?

  2. PostgreSQL - डेटाबेस डंप से एक तालिका को पुनर्स्थापित करना

  3. django.db.utils.OperationalError:सर्वर से कनेक्ट नहीं हो सका:ऐसी कोई फ़ाइल या निर्देशिका नहीं

  4. जांचें कि पोस्टग्रेस सरणी में मान मौजूद है या नहीं

  5. मेरे मामले में क्या गलत है?