在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。
请帮我解决这个问题。非常感谢提前!!
答案 0 :(得分:0)
我可能会遗漏一些东西,但我相信为了将变量传递给sqlcmd行中的存储过程,您必须使用/ v参数。一些资源: How do I call a stored procedure with arguments using sqlcmd.exe?