例如输入值为:2018-06-2523:59:59,但是日期和时间有空格,由于shell中将空格作为默认分隔符,因此只能将2018-06-25传递给脚本中的参数,而23:59:59则作为之后的另一个参数值处理。
解决方法:在shell脚本以及参数输入时都使用引号:在shell脚本中引用方法为"$2",调用shell脚本时,指定参数为"2018-06-2523:59:59"
如下sqoop抽取脚本oracle_extract_c.sh内容如下所示:
sqoop import \
--connect jdbc:oracle:thin:@192.168.20.104:1521:xe \
--username dep \
--password Dep2018 \
--table CUSTOMERTEST \
--columns "ID,NAME,LAST_MOD" \
--check-column LAST_MOD \
--incremental lastmodified \
--target-dir $1 \
--last-value "$2" \
--as-textfile \
--fields-terminated-by \\t \
-m 1 \
--append
./oracle_extract_c.sh /user/data_exchange/customertest/oracle/20180629 "2018-06-25 23:59:59"