sql >> Database >  >> RDS >> PostgreSQL

Fout ongeldige bytereeks tijdens het herstellen van de PostgreSQL-database

Oudere versies van PostgreSQL waren niet zo streng op de naleving van UTF-8 dan nieuwere versies. Vermoedelijk probeert u gegevens met ongeldige UTF-8 van zo'n oudere versie te herstellen naar een nieuwere versie.

De ongeldige strings moeten worden opgeschoond. U kunt die procedure volgen voor elke tabel die vanwege deze fouten niet is geïmporteerd:

  1. Pak de inhoud van de tabel uit het dumpbestand in een SQL-bestand met platte tekst:

    pg_restore --table=tablename --data-only dumpfile >plaintext.sql
    
  2. Verwijder de ongeldige tekens in een teksteditor of automatisch met iconv :

    iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
    
  3. Importeer de opgeschoonde gegevens:

    psql dbname < plaintext-cleaned.sql
    



  1. Negatieve waarden opmaken met haakjes in SQL Server (T-SQL)

  2. Oracle-spoolbestand naar een .txt-bestand. Opties voor koppen

  3. Kopieer twee kolommen van de ene tabel naar de andere, maar alleen unieke waarden

  4. Hoe bewaart u 1/01/1900 3:54:32 uur in MySQL?