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

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

स्पष्ट प्रकार के कास्ट का उपयोग करें:

SELECT language, to_tsvector(language::regconfig, 'hello world') FROM languages;

या कॉलम बदलें languages.language टाइप करने के लिए regconfig . @ स्वाव का जवाब देखें।

क्यों?

Postgres फ़ंक्शन ओवरलोडिंग की अनुमति देता है। फ़ंक्शन हस्ताक्षर उनके (वैकल्पिक रूप से स्कीमा . द्वारा परिभाषित किए जाते हैं -योग्य) नाम प्लस (सूची) इनपुट पैरामीटर प्रकार (एस)। to_tsvector() . का 2-पैरामीटर फ़ॉर्म अपेक्षित प्रकार regconfig पहले पैरामीटर के रूप में:

SELECT proname, pg_get_function_arguments(oid)
FROM   pg_catalog.pg_proc
WHERE  proname = 'to_tsvector'

   proname   | pg_get_function_arguments
-------------+---------------------------
 to_tsvector | text
 to_tsvector | regconfig, text             -- you are here

यदि कोई मौजूदा फ़ंक्शन बिल्कुल से मेल नहीं खाता है , फंक्शन टाइप रेजोल्यूशन के नियम सबसे अच्छा मैच तय करते हैं - यदि कोई हो। यह to_tsvector('english', 'hello world') . के लिए सफल है , 'english' . के साथ एक अनटाइप्ड स्ट्रिंग लिटरल . होने के नाते . लेकिन एक पैरामीटर के साथ विफल रहता है टाइप किया गया varchar , क्योंकि कोई पंजीकृत अंतर्निहित . नहीं है varchar . से डाली गई करने के लिए regconfig . मैनुअल:

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

ऐसे उम्मीदवार कार्यों को छोड़ दें जिनके लिए इनपुट प्रकार मेल नहीं खाते और परिवर्तित नहीं किए जा सकते (अंतर्निहित का उपयोग करके) रूपांतरण) मिलान करने के लिए। अज्ञातशाब्दिक इस उद्देश्य के लिए किसी भी चीज़ के लिए परिवर्तनीय माना जाता है।

बोल्ड जोर मेरा।
regconfig . के लिए पंजीकृत कास्ट :

SELECT castsource::regtype, casttarget::regtype, castcontext
FROM   pg_catalog.pg_cast
WHERE  casttarget = 'regconfig'::regtype;

 castsource | casttarget | castcontext
------------+------------+-------------
 oid        | regconfig  | i
 bigint     | regconfig  | i
 smallint   | regconfig  | i
 integer    | regconfig  | i

castcontext . के लिए स्पष्टीकरण :

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

castcontext char
दिखाता है कि किन संदर्भों में कलाकारों को बुलाया जा सकता है। e का अर्थ केवल एक स्पष्ट कलाकार के रूप में है (CAST . का उपयोग करके) या :: वाक्य - विन्यास)। a एक लक्ष्य कॉलम को असाइनमेंट में निहित रूप से मतलब है, साथ ही स्पष्ट रूप से। i का अर्थ है परोक्ष रूप से भावों में, साथ ही साथ अन्य मामलों में।

तीन अलग-अलग असाइनमेंट के प्रकार . के बारे में और पढ़ें कास्ट बनाएं अध्याय में।



  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. SQL यादृच्छिक डेटा के साथ तालिका पॉप्युलेट करें

  3. पोस्टग्रेज - पंक्तियों को कॉलम में स्थानांतरित करें

  4. मल्टी-डीसी पोस्टग्रेएसक्यूएल:एक वीपीएन पर एक अलग भू-स्थान पर एक स्टैंडबाय नोड सेट करना

  5. PostgreSQL के साथ एक पिवट टेबल बनाएं