2016-07-28 1 views
0

Привет У меня есть вопросы, запрашивая с махом и psaldbSqoop PSQL запрос с датами

 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 

Я получаю следующее сообщение об ошибке:

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

Похоже цитируемости вопрос: '... 'выберите ... transact_time = '20160603-00: 00: 01' ...' ... '(а также, это не похоже на метку времени) – pozs

+0

Я пробовал много комбинаций кавычек. Ничего не работает – CodeGeek123

+0

Если это в командной строке, я бы попробовал '--query 'select ...' quoted values ​​'..." 'first, и если это не работает каким-то образом, используйте [escaping] (http: // stackoverflow. ком/вопросы/3834839/как к побегу-двойная кавычка, внутри-а-двойные кавычки). – pozs

ответ

1

Вам необходимо оформить запрос, завернутые в двойные кавычки ("), так как вы используете одинарные кавычки (') в запросе, и вам нужно будет использовать \$CONDITIONS вместо $CONDITIONS, чтобы запретить вашей оболочке рассматривать ее как переменную оболочки.

Try:

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

Спасибо, да, именно это я и сделал, и это сработало. – CodeGeek123

 Смежные вопросы

  • Нет связанных вопросов^_^