2016-12-01 4 views
1

Ich habe dieses Problem, wenn ich versuche, nach AWS redshift zu kopieren. Dies ist der Code, den ich zu laufen versuche:psycopg2.ProgrammingError: Syntaxfehler bei oder in der Nähe von "stdin" -Fehler beim Kopieren von_von_Rotshift

with open('path/to/files, 'rb') as fo: 
    cursor.copy_from(fo, 'schema.table', sep=',') 
    cursor.commit() 

Und traf ich den Fehler:

psycopg2.ProgrammingError: syntax error at or near "stdin" 
LINE 1: ...Y schema.table FROM stdin WITH... 

Ich bin mit Python 3.5 mit psycopg2. Hoffen Sie, dass Sie helfen können! Danke im Voraus!

Antwort

1

AWS Redshift ist nicht PostgreSQL, obwohl es eine Teilmenge der PostgreSQL-Syntax und -Funktionalität unterstützt.

Es hat keine COPY ... FROM STDIN.

Siehe the manual für die Verwendung von COPY auf Redshift.

+0

Vielen Dank für Ihre Hilfe! – Larry

+0

@CraigRinger Ich verstehe Ihren Punkt und sehen, wie COPY von einer Befehlszeile oder einem DB-Tool (DBeaver, etc) verwendet wird, aber wie Sie eine Kopie in einer Tabelle aus einem Python-Skript machen. Welches Modul und welche Syntax würden Sie vorschlagen? –

+0

Wahrscheinlich müssen Sie stattdessen Multi-Inserts verwenden oder Daten generieren, um sie zu s3 hochzuladen und von dort "COPY" zu kopieren. *zucken*. Ich verwende Redshift nicht. Vielleicht solltest du eine neue Frage posten und auf diesen Link zurückkommen? –

Verwandte Themen