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

Postgresql किसी फ़ंक्शन में निष्पादन प्रारूप का उपयोग करने का प्रयास कर रहा है लेकिन कॉलम प्राप्त करने में त्रुटि नहीं मिली है जब कोलेस में स्ट्रिंग प्रारूप दे रहा है

यह वही कर सकता है जिसकी आपको तलाश है:

CREATE OR REPLACE FUNCTION foo(_t text)
  RETURNS TABLE (Stage_ID bigint, Date varchar) AS
$func$
   SELECT t.Stage_ID, t.Date
   FROM   tbl t
   WHERE  t.Date = _t::date;
$func$  LANGUAGE sql;
  • व्यंजक where to_date(Date, "YYYY-MM-DD")==%I',_t); कई मायनों में पीछे है।

    • मानों के लिए सिंगल कोट्स :'YYYY-MM-DD'
    • ऑपरेटर है = , नहीं ==
    • ऐसा लगता है कि आप वाकई t.Date = to_date(_t, 'YYYY-MM-DD') चाहते हैं
    • और जबकि _t मानक आईएसओ फॉर्म 'YYYY-MM-DD' में है, बल्कि इसके बजाय सिर्फ कास्ट करें:t.Date = _t::date
  • फ़ंक्शन बॉडी के अंदर आउटपुट कॉलम नाम दिखाई दे रहे हैं। एक ही नाम का टेबल-क्वालिफाई कॉलम। बेहतर अभी तक, शुरू करने के लिए इस तरह के संघर्षों का नामकरण करने से बचें! देखें:

  • EXECUTE . के साथ डायनेमिक SQL की कोई आवश्यकता नहीं है . डेटा मान पास करना सादे SQL के साथ ठीक काम करता है।

  • plpgsql की कोई आवश्यकता नहीं है। सरल क्वेरी के लिए किसी प्रक्रियात्मक कार्यक्षमता की आवश्यकता नहीं होती है। LANGUAGE sql काम करता है - अगर आपको किसी फ़ंक्शन की बिल्कुल भी ज़रूरत है, तो सादा SQL नौकरी के लिए ठीक लगेगा।

इसके अलावा:पहचानकर्ता के रूप में "तारीख" जैसे मूल प्रकार के नामों का उपयोग न करें। कानूनी, लोअर केस आइडेंटिफ़ायर से चिपके रहें। संबंधित:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल 4 पोस्टग्रेज करने के लिए एसक्लाइट से विफल होने वाले टैप माइग्रेशन, रूबी 1.9.3

  2. PostgreSQL में टाइम ज़ोन ऑफ़सेट के साथ वर्तमान दिनांक और समय कैसे प्राप्त करें

  3. पोस्टग्रेज़ में उपयोगकर्ता परिभाषित तालिकाओं की जांच कैसे करें?

  4. छवि योग्य प्रकार बहुरूपी संघों के लिए सेटिंग नहीं कर रहा है

  5. विदेशी कुंजी द्वारा लिंक की गई तालिकाओं में डेटा डालें