GPX*_*GPX 10 linux sql-server sqlcmd
我正在使用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)';
Run Code Online (Sandbox Code Playgroud)
而且我正在运行这样的sqlcmd命令.
sqlcmd -S server -d database -U user -P pass -i input.sql -v param1="DUMMYVALUE"
Run Code Online (Sandbox Code Playgroud)
当我执行上面的命令时,我收到以下错误.
Sqlcmd: 'param1=DUMMYVALUE': Invalid argument. Enter '-?' for help.
帮助列出以下语法.
[-v var = "value"...]
我在这里错过了什么吗?
Ana*_*and 15
您不需要将变量传递给sqlcmd.它会从您的shell变量中自动选择:例如
export param1 = DUMMYVALUE
sqlcmd -S $host -U $user -P $pwd -d $db -i input.sql
在RTP版本(11.0.1790.0)中,-v执行时,该开关不会出现在参数列表中sqlcmd -?。显然,该工具的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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5215 次 |
| 最近记录: |