2017-10-02 2 views
1

Bei einer getrennten Datei in dem folgenden FormatImport eine getrennte Datei mit Werten Feld ein entkommen delimiter

  • Felder begrenzt durch ein Rohr char |
  • Textfelder sind unquoted
  • einige Textfeldwerte enthalten, enthalten ein entflohener Rohr \| speisen eine entkommen Linie \\n oder carriage return entkommen \\r
 
1|text containing the pipe \| character|3 
          ^^^ 

Was ist die korrekte Kombination von pgloader Optionen möglicherweise, um diese Datei erfolgreich zu laden?

Ich versuchte

 
pgloader --type csv --field "field1,field2,field3" \ 
--with "fields terminated by '|'" \ 
--with "fields not enclosed" \ 
path/to/file.csv \ 
postgresql://[email protected]:port/dbname?tablename=schema.table 

die offensichtlich nicht für mich arbeiten, wie pgloader vier Felder drei statt sieht.

+0

@DimitriFontaine Keine Erkenntnisse darüber, wie diese zu überwinden stark – peterm

Antwort

1

Sie sollten Escape-Zeichen angeben, da es standardmäßig doppelt dotiert ist.

Versuchen Sie folgenden Befehl:

 
pgloader --type csv \ 
     --field "field1,field2,field3" \ 
     --with "fields terminated by '|'" \ 
     --with "fields escaped by '\'" \ 
     path/to/file.csv \ 
     postgresql://[email protected]:port/dbname?tablename=schema.table 
+0

geschätzt wäre ich nicht erwähnt, dass in der Frage, aber ich versuchte, diese Option sowohl mit '‚\‘' und ein Hex-Code "0x5C". Es hat keine Wirkung, zumindest wenn es auf diese Weise geschrieben wird. – peterm

+0

Ich sehe. Looks Zeile csv nicht nur Escape-Zeichen zu erlauben. Brauchen Sie ein Zitat mit ihm eingereicht. F. ex. '' '1 |" Text mit dem Zeichen | | 3''' –

Verwandte Themen