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 . में बदलने में सक्षम होना चाहिए कुछ स्क्रिप्ट का उपयोग करना, शायद पायथन या पर्ल।