2016-07-28 14 views
0

Hallo Ich habe Probleme mit swoop Abfrage und einem psaldbSqoop psql Abfrage mit Daten

 Sqoop import --connect 'jdbc:postgresql://xx.xx.xxx.xx:xxxxx/database' --query 'select * from report where transact_time = '20160603-00:00:01' and $CONDITIONS' --username uname --target-dir /user/x/data --split-by transact_time 

Ich erhalte die folgende Fehlermeldung:

Error executing statement: org.postgresql.util.PSQLException: ERROR: syntax error at or near ":" 
    Position: 61 
    org.postgresql.util.PSQLException: ERROR: syntax error at or near ":" 
+0

Scheinen wie eine zitierte Ausgabe: '... 'wählt ... transact_time = '20160603-00: 00: 01' ...' ...' (und auch, es scheint überhaupt kein Zeitstempel zu sein) – pozs

+0

Ich habe viele Kombinationen von Anführungszeichen ausprobiert. Keine Arbeit – CodeGeek123

+0

Wenn das in einer Befehlszeile ist, würde ich '--query" auswählen ... 'zitierte Werte' ... "' zuerst versuchen, und wenn das irgendwie nicht funktioniert, verwenden Sie [escaping] (http: // stackoverflow. com/questions/3834839/how-to-escape-double-Zitat-in-a-double-quote). – pozs

Antwort

1

Sie müssen die Abfrage mit doppelten Anführungszeichen eingewickelt erteilen (") Da Sie in der Abfrage einfache Anführungszeichen (') verwenden, müssen Sie \$CONDITIONS anstatt nur $CONDITIONS verwenden, damit Ihre Shell sie nicht als Shell-Variable behandelt.

Versuchen:

--query "select * from report where transact_time = '20160603-00:00:01' and \$CONDITIONS" 
+0

Danke ja das ist genau das, was ich getan habe und es hat funktioniert. – CodeGeek123