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

सॉल्विंग एरर:पोस्टग्रेज में डेटा में मिली शाब्दिक न्यूलाइन?

PostgreSQL स्रोत से कोड स्निपेट के अनुसार, copy.c :

 /* Process \n */
 if (c == '\n' && (!cstate->csv_mode || !in_quote))
 {
     if (cstate->eol_type == EOL_CR || cstate->eol_type == EOL_CRNL)
         ereport(ERROR,
             (errcode(ERRCODE_BAD_COPY_FILE_FORMAT),
             !cstate->csv_mode ?
             errmsg("literal newline found in data") :
             errmsg("unquoted newline found in data"),
             !cstate->csv_mode ?
             errhint("Use \"\\n\" to represent newline.") :
             errhint("Use quoted CSV field to represent newline.")));
      cstate->eol_type = EOL_NL;      /* in case not set yet */
      /* If reach here, we have found the line terminator */
      break;
}

इसका मतलब है कि आपका इनपुट डेटा बाइट का उपयोग कर रहा है 0x0A कहीं आपके तार के अंदर, उदा। आप "abcNxyz" . का उपयोग करते हैं , जहां N . के बजाय वास्तव में मूल्य के साथ बाइट है 0x0A

समाधान स्ट्रिंग "abc\n" . का उपयोग करना है इसके बजाय। आपको सभी नकली न्यूलाइन खोजने और उन्हें \n . में बदलने में सक्षम होना चाहिए कुछ स्क्रिप्ट का उपयोग करना, शायद पायथन या पर्ल।



  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 में क्वेरी ऑप्टिमाइज़ेशन। मूल बातें समझाएं - भाग 3

  2. PostgreSQL पर एक सशर्त अद्वितीय अनुक्रमणिका कैसे जोड़ें

  3. समय सीमा के लिए 'एक-से-अनेक' संबंध अखंडता मुद्दा

  4. PostgreSQL 9.0 . के साथ लोंडिस्ट प्रतिकृति

  5. SQL में सेट किए गए परिणाम में प्रत्येक कॉलम में तालिका का नाम तैयार करें? (विशेष रूप से पोस्टग्रेज)