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

SQL स्थिति:42883, कोई फ़ंक्शन दिए गए नाम और तर्क प्रकारों से मेल नहीं खाता। लेकिन वह कार्य वास्तव में मौजूद है

शायद स्कीमा बनाम स्कीमा का मामला search_path . फ़ंक्शन बनाने वाले उपयोगकर्ता के डिफ़ॉल्ट स्कीमा में बनाया गया है। अगर वह search_path . में नहीं है वर्तमान उपयोगकर्ता का, यह दृश्यमान नहीं है।

विवरण:

आमतौर पर, आप स्कीमा public . में सार्वजनिक फ़ंक्शन बनाएँगे और उस स्कीमा को हर किसी के search_path . में रखें ।

CREATE OR REPLACE FUNCTION public.fun_validatepost(integer, integer)
  RETURNS integer AS
$BODY$
...
$BODY$ LANGUAGE plpgsql;
ALTER FUNCTION public.fun_validatepost(integer, integer) OWNER TO postgres;

स्कीमा-योग्यता केवल तभी आवश्यक है जब public वैसे भी डिफ़ॉल्ट स्कीमा नहीं है।

साथ ही, आपका GRANT आदेशों का कोई मतलब नहीं है। EXECUTE कार्यों के लिए विशेषाधिकार public . को दिया जाता है डिफ़ॉल्ट रूप से। और एक बार जब आप public . को अनुदान देते हैं , अन्य उपयोगकर्ताओं को अनुदान देने की कोई आवश्यकता नहीं है। विशेष रूप से नहीं postgres , जो OWNER है वैसे भी और एक सुपरयुसर भी। मैनुअल:

आपको USAGE grant प्रदान करने की आवश्यकता है SCHEMA . पर जहां फ़ंक्शन बनाया गया है। public स्कीमा अनुदान USAGE करने के लिए public (सभी) डिफ़ॉल्ट रूप से।

एक तरफ 1

integer में कास्ट किया जा रहा है यहां कुछ भी नहीं बदलता है क्योंकि दशमलव बिंदु के बिना एक संख्यात्मक अक्षर स्वचालित रूप से पूर्णांक के लिए मजबूर हो जाता है। मैनुअल में स्थिरांक के बारे में विवरण।

एक तरफ 2

तत्काल Postgres के वर्तमान संस्करण में अपडेट करने पर विचार करें। आपका सॉफ़्टवेयर पूरी तरह से पुराना है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy कोई पासवर्ड आपूर्ति त्रुटि नहीं

  2. मैं अगली कड़ी Postgresql माइग्रेशन में ARRAY कॉलम को कैसे परिभाषित करूं?

  3. Docker Postgresql डेटा निर्देशिका को नहीं पहचान रहा है

  4. Haproxy और Keepalived की स्थापना कैसे करें

  5. ADO.NET इकाई फ्रेमवर्क के लिए डेटा प्रदाता के रूप में Npgsql कैसे स्थापित करें?