由于语法不正确,无法 运行 sqlcmd
Not able to run the sqlcmd due to incorrect syntax
我正在尝试 运行 bash 脚本中的 sqlcmd,但是它给出了语法错误,因为它无法转换列 -
sqlcmd -S $DB_HOST -U $DB_USER -P $DB_PASSWORD -o $mssqlresult -s "," -W -h -1 -Q "SET NOCOUNT ON SELECT * FROM prod_UDD.prod_UDD_CDD.V_DAILY_CTS_TRX WHERE CAST("/""UTC DATE TIME"/"" AS DATE)='$trade_date';"
出现以下错误
Sqlcmd: 'DATE" "TIME/ AS DATE)='2021-01-31';': Unexpected argument. Enter '-?' for help.
我不知道哪里出了问题。
转义符是\
,不是/
。
像这样重写你的命令:
sqlcmd -S "$DB_HOST" -U "$DB_USER" -P "$DB_PASSWORD" -o "$mssqlresult" -s "," -W -h -1 -Q "SET NOCOUNT ON SELECT * FROM prod_UDD.prod_UDD_CDD.V_DAILY_CTS_TRX WHERE CAST(\"UTC DATE TIME\" AS DATE)='$trade_date';"
注意 1:我也将您的 shell 变量放在双引号内;不引用 shell 变量 .
注意 2: UTC DATE TIME
周围不应该有反引号而不是双引号吗?我的感觉是 UTC DATE TIME
是列名,不是字符串。如果我是对的,试试这个:
sqlcmd -S "$DB_HOST" -U "$DB_USER" -P "$DB_PASSWORD" -o "$mssqlresult" -s "," -W -h -1 -Q "SET NOCOUNT ON SELECT * FROM prod_UDD.prod_UDD_CDD.V_DAILY_CTS_TRX WHERE CAST(\`UTC DATE TIME\` AS DATE)='$trade_date';"
我正在尝试 运行 bash 脚本中的 sqlcmd,但是它给出了语法错误,因为它无法转换列 -
sqlcmd -S $DB_HOST -U $DB_USER -P $DB_PASSWORD -o $mssqlresult -s "," -W -h -1 -Q "SET NOCOUNT ON SELECT * FROM prod_UDD.prod_UDD_CDD.V_DAILY_CTS_TRX WHERE CAST("/""UTC DATE TIME"/"" AS DATE)='$trade_date';"
出现以下错误
Sqlcmd: 'DATE" "TIME/ AS DATE)='2021-01-31';': Unexpected argument. Enter '-?' for help.
我不知道哪里出了问题。
转义符是\
,不是/
。
像这样重写你的命令:
sqlcmd -S "$DB_HOST" -U "$DB_USER" -P "$DB_PASSWORD" -o "$mssqlresult" -s "," -W -h -1 -Q "SET NOCOUNT ON SELECT * FROM prod_UDD.prod_UDD_CDD.V_DAILY_CTS_TRX WHERE CAST(\"UTC DATE TIME\" AS DATE)='$trade_date';"
注意 1:我也将您的 shell 变量放在双引号内;不引用 shell 变量
注意 2: UTC DATE TIME
周围不应该有反引号而不是双引号吗?我的感觉是 UTC DATE TIME
是列名,不是字符串。如果我是对的,试试这个:
sqlcmd -S "$DB_HOST" -U "$DB_USER" -P "$DB_PASSWORD" -o "$mssqlresult" -s "," -W -h -1 -Q "SET NOCOUNT ON SELECT * FROM prod_UDD.prod_UDD_CDD.V_DAILY_CTS_TRX WHERE CAST(\`UTC DATE TIME\` AS DATE)='$trade_date';"