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

एक गैर-पूर्णांक के लिए पूर्णांक के लिए त्रुटि अमान्य इनपुट सिंटैक्स?

एरे कंस्ट्रक्टर इससे पहले कि आप फ़ंक्शन प्रकार रिज़ॉल्यूशन पर पहुंचें - एक बार जब आप ARRAY कंस्ट्रक्टर को हटा देते हैं, जो कॉल में बिल्कुल नहीं होना चाहिए, तो आपको अन्य प्रकार के बेमेल के कारण अधिक त्रुटि संदेश प्राप्त होंगे।

आपका समाधान मिलान प्रकार के अलग-अलग पैरामीटर . पास करना है , नहीं एक सारणी। बाकी हमने जो देखा उसकी व्याख्या मात्र है।

वास्तव में क्या हुआ

एक सरणी में केवल एक ही प्रकार के मान शामिल हो सकते हैं, लेकिन आपका इनपुट मिश्रित होता है संख्यात्मक स्थिरांक एक गैर-संख्यात्मक स्ट्रिंग शाब्दिक के साथ , जिसे सुलझाया नहीं जा सकता।

यदि आप चाहते हैं कि यह text[] . पर हल हो जाए (text की सरणी ), आपको इस तरह स्ट्रिंग अक्षर प्रदान करने होंगे:

SELECT ARRAY['1004', '2', '1079412', 'WwLEA6XZ0'];

या सीधे एक सरणी शाब्दिक, जैसे:

SELECT '{1004, 2, 1079412, WwLEA6XZ0}'::text[];

लेकिन एक बार जब आप संख्यात्मक स्थिरांक के साथ ARRAY कंस्ट्रक्टर शुरू करते हैं, तो केवल संख्यात्मक प्रकार जोड़ना कानूनी होता है। या सामग्री के साथ कम से कम स्ट्रिंग अक्षर जिन्हें एक ही प्रकार के लिए मजबूर किया जा सकता है। आप कर सकते थे :

SELECT ARRAY[1004, 2, 1079412, '1'];

... जिसके परिणामस्वरूप int[] . या:

SELECT ARRAY[1004, 2, 1079412, 1.0];

या यहां तक ​​कि:

SELECT ARRAY[1004, 2, 1079412.0, '1.0'];

... दोनों के परिणामस्वरूप numeric[]

लेकिन ARRAY[1004, 2, 1079412, 'WwLEA6XZ0V'] अवैध है और सही भी है।

सरणी कंस्ट्रक्टरों के लिए टाइप रिज़ॉल्यूशन के सटीक नियम मैनुअल के इस अध्याय में पाए जा सकते हैं:"रूपांतरण प्रकार" - "UNION, CASE, और संबंधित निर्माण" . आपकी यात्रा यहां समाप्त होती है:

चूंकि स्ट्रिंग शाब्दिक 'WwLEA6XZ0V' integer . में परिवर्तित नहीं किया जा सकता ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्लॉज जानने के लिए ध्यान रखें:सेलेक्ट, फ्रॉम, व्हेयर, ग्रुप बाय, हैविंग, ऑर्डर बाय, और लिमिट के बारे में सब कुछ

  2. PostgreSQL - मूल से छोटा डेटाबेस पुनर्स्थापित किया गया

  3. PostgreSQL सहसंबंध समारोह का उपयोग करना

  4. PostgreSQL - किसी अन्य तालिका से चयन के आधार पर पंक्तियाँ सम्मिलित करें, और उस तालिका में नई सम्मिलित पंक्तियों के साथ FK को अद्यतन करें

  5. पैरामीटर को पोस्टग्रे फ़ंक्शन में कैसे पास करें और ExecuteReader का उपयोग करके डेटा प्राप्त करें?