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

पोस्टग्रेज़ फ़ंक्शन रिटर्निंग टेबल कॉलम में डेटा वापस नहीं कर रहा है

पंक्ति प्रकार के बजाय अलग-अलग कॉलम प्राप्त करने के लिए, फ़ंक्शन को कॉल करें:

SELECT * FROM testfunction();

जैसे आप किसी तालिका से सभी स्तंभों का चयन करेंगे।
अपने परीक्षण कार्य के इस समीक्षा किए गए रूप पर भी विचार करें:

CREATE OR REPLACE FUNCTION testfunction()
  RETURNS TABLE(a int, b int)
  LANGUAGE plpgsql AS
$func$
DECLARE
   _a int := 0;
   _b int := 0;
BEGIN
   CREATE TABLE tempTable AS SELECT _a, _b;
   RETURN QUERY SELECT * FROM tempTable;
   DROP TABLE tempTable;
END
$func$;

विशेष रूप से:

DECLARE कुंजी शब्द केवल एक बार आवश्यक है।

ऐसे पैरामीटर घोषित करने से बचें जो पहले से ही (निहित रूप से) OUT . के रूप में घोषित किए गए हैं RETURNS TABLE (...) . में पैरामीटर खंड।

Postgres में गैर-उद्धृत CaMeL- केस पहचानकर्ताओं का उपयोग न करें। यह काम करता है, गैर-उद्धृत पहचानकर्ता निचले मामले में डाले जाते हैं, लेकिन इससे भ्रमित त्रुटियां हो सकती हैं। देखें:

  • क्या PostgreSQL कॉलम नाम केस-संवेदी हैं?

उदाहरण में अस्थायी तालिका पूरी तरह से बेकार है (शायद अधिक सरलीकृत)। दिए गए उदाहरण में उबाल आता है:

CREATE OR REPLACE FUNCTION testfunction(OUT a int, OUT b int)
  LANGUAGE plpgsql AS
$func$
BEGIN
   a := 0;
   b := 0;
END
$func$;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे Acosd () PostgreSQL में काम करता है

  2. PostgreSQL के लिए एक मल्टी-डेटासेंटर सेटअप लागू करना - भाग दो

  3. PostgreSQL:JSON कॉलम से विशेषता हटाएं

  4. django ORM का उपयोग करके आप विदेशी कुंजी फ़ील्ड पर दो तालिकाओं में कैसे शामिल होते हैं?

  5. Django cache.set () डुप्लिकेट कुंजी त्रुटि उत्पन्न कर रहा है