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

कुल initcond . बनाने में postgresql विकृत सरणी शाब्दिक

आपको अपने सरणियों के चारों ओर उद्धरणों की आवश्यकता है, और ऐसा इसलिए है क्योंकि सरणी एक पंक्ति के पाठ संस्करण में है।

अपने इनपुट को एक पंक्ति के रूप में ले कर परीक्षण करना आसान है और देखें कि कैसे पोस्टग्रेज़ इसे प्रारूपित करता है (यहां सरणी के आसपास सिंगल कोट्स की आवश्यकता है क्योंकि {} पाठ में एक सरणी है):

SELECT ROW(0,NULL,NULL, 0, 0, 0, 0, '{}', '{1,2,3,4,5}', '{1,2,3,4,5}', '{0,0.25,0.5,0.75,1}')

रिटर्न:

(0,,,0,0,0,0,{},"{1,2,3,4,5}","{1,2,3,4,5}","{0,0.25,0.5,0.75,1}")

इसलिए आपको यह करने की आवश्यकता है:

...
initcond = '(0,,,0,0,0,0,{},"{1,2,3,4,5}","{1,2,3,4,5}","{0,0.25,0.5,0.75,1}")'

एक सरणी पर उद्धरणों की आवश्यकता क्यों नहीं है जो खाली है या केवल एक मान है:

एक सरणी में एकाधिक मान अल्पविराम-सीमांकित होते हैं, और एक पंक्ति के भीतर फ़ील्ड भी अल्पविराम-सीमांकित होते हैं। यदि आप '(0,{1,2})' . के रूप में एक पंक्ति प्रदान करते हैं , PG इसकी व्याख्या तीन क्षेत्रों के रूप में करेगा:0 , {1 , 2} . स्वाभाविक रूप से उस स्थिति में आपको एक विकृत सरणी के बारे में एक त्रुटि मिलेगी। फ़ील्ड को उद्धरणों में रखने का अर्थ है कि उन उद्धरणों में सब कुछ एक फ़ील्ड है। इसलिए '(0,"{1,2}")' 0 . के रूप में सही ढंग से व्याख्या की जाएगी , {1,2} . यदि सरणी खाली है या उसमें केवल एक मान है, तो कोई अल्पविराम नहीं होगा, इसलिए उस फ़ील्ड को सही ढंग से पार्स करने में कोई समस्या नहीं है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle से Postgresql में स्थानिक डेटा माइग्रेट करें

  2. PostgreSQL सबस्ट्रिंग ब्रैकेट के बीच स्ट्रिंग प्राप्त करें

  3. एक्लिप्सलिंक जेपीए काउंट (*) के बजाय काउंट (आईडी) का उपयोग करके काउंट क्वेश्चन उत्पन्न करता है

  4. LIMIT/OFFSET के साथ एक क्वेरी चलाएँ और पंक्तियों की कुल संख्या भी प्राप्त करें

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