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?
在 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?