SSIS执行进程任务:字符串''1/1/1900'后的引号不闭合

SSIS Execute Process Task :Unclosed quotation mark after the character string ''1/1/1900 '

在 SSIS 中使用执行进程任务,我正在尝试执行一个批处理文件,该文件的脚本如下:

sqlcmd  -S ServerName -d DataBasName  -Q "EXECUTE store_procedure_name"%1    -o C:\Users\Desktop\exe_test\abc.txt   -s "," -W 

%1 将参数传递给存储过程。我已经使用表达式通过在参数 属性 中使用变量来传递参数。

变量的表达式为:

"'"+(DT_WSTR, 20)@[User::v_ST_DT]+"'"+","+"'"+(DT_WSTR, 20)@[User::v_ED_DT] +"'"+","+(DT_WSTR, 20)@[User::v_ST_Key] +","+(DT_WSTR, 20)@[User::v_END_SCFL_LOAD_KEY]

执行进程任务执行得很好。但是在我的 abc.txt 文件中我得到 声明为:

"Msg 105, Level 15, State 1, Server ServerName, Line 1
Unclosed quotation mark after the character string ''@[User::v_ST_DT]
'. "

@[User::v_ST_DT] 的值是 1/1/1900 3:23:00 下午。

请帮我解决这个问题。非常感谢!!

我可能遗漏了一些东西,但我相信为了将变量传递给 sqlcmd 行中的存储过程,您必须使用 /v 参数。一些资源: How do I call a stored procedure with arguments using sqlcmd.exe?

https://msdn.microsoft.com/en-us/library/ms188714.aspx