由于数据库表在列名称中有空格,因此实现这一点非常痛苦 .
我可以让下面的工作,例如:
sqoop eval \
--connect "jdbc:connect_string"
--username useranem
--password pass
--query "select [Entry No_] as entry_nr,[Transaction No_] as transaction_nr,[G_L Account No_] as account_nr from [DBNAME $\GL Entry] with (nolock)"
工作得很好(注意列名和表名中的空格) . 但是,第二个我添加了一个where子句,它会抛出一个错误 .
例如:
sqoop eval \
--connect "jdbc:connect_string"
--username useranem
--password pass
--query "select * from [DBNAME $\GL Entry] with (nolock) where [Entry No_] > 0 and year([Posting Date])=2018 and \$CONDITIONS "
这是错误:
WARN tool.EvalSqlTool:SQL异常执行语句:com.microsoft.sqlserver.jdbc.SQLServerException:无效的伪列“$ CONDITIONS”
在使用 --split-by 子句中的一个列时,我遇到了同样的问题,因为列名有一个空格 .
任何有专业知识的人都会提出建议 .