我正在使用Korn
shell在
Linux机箱(Red Hat Enterprise Server 5.3 tikanga)上运行适用于Linux的Microsoft sqlCMD工具(CTP 11.0.1720.0).该工具已正确配置,除了使用脚本变量外,在所有情况下均可使用.
我有一个sql脚本,看起来像这样.
SELECT COLUMN1 FROM TABLE WHERE COLUMN2 = '$(param1)';
我正在运行这样的sqlcmd命令.
sqlcmd -S server -d database -U user -P pass -i input.sql -v param1="DUMMYVALUE"
当我执行上面的命令时,我收到以下错误.
sqlcmd:’param1 = DUMMYVALUE’:参数无效.输入’ – ?’求助.
帮助列出以下语法.
[-v var =“value”…]
我在这里错过了什么吗?
解决方法
在RTP版本(
11.0.1790.0)中,执行sqlcmd时,-v开关不会出现在参数列表中 – ?.显然,该工具的Linux版本不支持此选项.
据我所知,从环境变量导入参数值也不起作用.
据我所知,从环境变量导入参数值也不起作用.
如果需要一种解决方法,一种方法是将一个或多个:setvar语句与包含要运行的命令的文本文件连接到一个新文件,然后执行新文件.根据你的例子:
echo :setvar param1 DUMMYVALUE > param_input.sql cat input.sql >> param_input.sql sqlcmd -S server -d database -U user -P pass -i param_input.sql