PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Giải quyết lỗi:dòng chữ mới được tìm thấy trong dữ liệu ở Postgres?

Theo đoạn mã từ nguồn 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;
}

có nghĩa là dữ liệu đầu vào của bạn đang sử dụng byte 0x0A ở đâu đó bên trong chuỗi của bạn, ví dụ:bạn sử dụng "abcNxyz" , thay vì N thực sự có byte với giá trị 0x0A .

Giải pháp là sử dụng chuỗi "abc\n" Thay vào đó, bạn sẽ có thể tìm thấy tất cả các dòng mới giả mạo và thay thế chúng thành \n bằng cách sử dụng một số tập lệnh, có thể là Python hoặc Perl.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chụp các bản ghi lỗi bằng cách sử dụng JDBCTemplate batchUpdate trong postgreSql?

  2. Làm cách nào để ngăn chặn việc đưa vào SQL bằng chuỗi truy vấn JSONB tùy ý được cung cấp bởi máy khách bên ngoài?

  3. Làm cách nào để chèn HashMap vào PostgreSQL dưới dạng JSON?

  4. CHÈN LỆNH ::LỖI:giá trị cột không tồn tại

  5. CommandError:Có vẻ như bạn chưa cài đặt chương trình 'psql' hoặc trên đường dẫn của bạn