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

时间:2015-03-05 14:56:08

标签: ssis

在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 PM。

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

1 个答案:

答案 0 :(得分:0)

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

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