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

कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता

आपके फ़ंक्शन में कुछ smallint है पैरामीटर।
लेकिन कॉल में, आप संख्यात्मक शाब्दिकों का उपयोग कर रहे हैं जिन्हें integer प्रकार माना जाता है ।

एक स्ट्रिंग शाब्दिक या स्ट्रिंग स्थिरांक ('123' ) तुरंत टाइप नहीं किया जाता है। यह निर्दिष्ट या स्पष्ट रूप से डाले जाने तक "अज्ञात" टाइप रहता है।

हालांकि, एक संख्यात्मक शाब्दिक या संख्यात्मक स्थिरांक तुरंत टाइप किया जाता है। मैनुअल:

<ब्लॉकक्वॉट>

एक संख्यात्मक स्थिरांक जिसमें न तो कोई दशमलव बिंदु होता है और न ही घातांक शुरू में integer प्रकार माना जाता है यदि इसका मान integer . प्रकार में फिट बैठता है (32 बिट्स); अन्यथा इसे टाइप bigint . माना जाता है यदि इसका मान bigint . प्रकार में फिट बैठता है (64 बिट्स); अन्यथा इसे numeric type टाइप करने के लिए लिया जाता है . दशमलव बिंदु और/या घातांक वाले स्थिरांक हमेशा प्रारंभ में numeric प्रकार के माने जाते हैं ।

यह भी देखें:

  • PostgreSQL त्रुटि:कार्य to_tsvector(चरित्र भिन्न, अज्ञात) मौजूद नहीं है

समाधान

smallint . के लिए अश्लील कास्ट जोड़ें पैरामीटर या पास उद्धृत (बिना टाइप किए गए) अक्षर।

डेमो

CREATE OR REPLACE FUNCTION f_typetest(smallint)
  RETURNS bool AS 'SELECT TRUE' LANGUAGE sql;

गलत कॉल:

SELECT * FROM f_typetest(1);

सही कॉल:

SELECT * FROM f_typetest('1');
SELECT * FROM f_typetest(smallint '1');
SELECT * FROM f_typetest(1::int2);
SELECT * FROM f_typetest('1'::int2);

db<>फिडल यहाँ
पुराना sqlfiddle.



  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. डेटा अंतराल के आधार पर समूहित करें

  3. PostgreSQL में Ln () फ़ंक्शन कैसे काम करता है

  4. pgFincore 1.2, एक PostgreSQL एक्सटेंशन

  5. PostgreSQL में दी गई तालिका के लिए सभी ट्रिगर सूचीबद्ध करने के 3 तरीके