com*_*ill 3 sql-server ssis sql-server-2005
我在SSIS包中有几个变量,我想插入表中.
例:-
@financialMonth, @Status, @Comments
Run Code Online (Sandbox Code Playgroud)
变量已经填充了基于查找,文件名,日期等的值,我想将它们存储在结果表中.
是否使用执行SQL任务的方式来做到这一点?
我是否需要调用sproc并将这些变量作为参数传递?
我已经尝试将以下T-SQL放入SQLStatement属性中
INSERT INTO FilesProcessed
(ProcessedOn, ProviderCode, FinancialMonth,
FileName, Status, Comments)
SELECT GETDATE(), 'ABC' , 201006,
'ABC_201005_Testology.csv',
'Imported','Success'
Run Code Online (Sandbox Code Playgroud)
我尝试对上面的值进行硬编码以使其工作
这些是我插入的表格中的列
Column_name Type Computed Length
fileID int no 4
ProcessedOn datetime no 8
ProviderCode nchar no 6
FinancialMonth int no 4
FileName nvarchar no 510
Status nvarchar no 40
Comments nvarchar no 510
Run Code Online (Sandbox Code Playgroud)
这是提供SQLStatementSource属性的Expression代码
"INSERT INTO FilesProcessed (ProcessedOn, ProviderCode, FinancialMonth,
FileName, Status, Comments) SELECT GETDATE() AS ProcessedOn, '"
+ @[User::providerCode] + "' , "
+ (DT_STR,6,1252)@[User::financialMonth] + ", '"
+ @[User::fileName] + "', 'Imported' AS Status,'Successfully' AS Comments "
Run Code Online (Sandbox Code Playgroud)
不幸的是我错过了一些东西,并且无法让它发挥作用.
我得到的错误消息是......错误:0xC002F210在FilesProcessed中的日志条目,执行SQL任务:执行查询"INSERT INTO FilesProcessed(ProcessedOn,ProviderCode,FinancialMonth,FileName,Status,Comments)SELECT
GETDATE(),' ABC',201006,'DAG_201005_Testology.csv','导入','成功'"失败并出现以下错误:"将结果提取到类型变量(DBTYPE_I2)时发生错误".可能的故障原因:查询问题,"ResultSet"属性设置不正确,参数设置不正确或连接未正确建立.
请
一个).建议执行SQL任务是否是我想做的事情的方式.
B).给我任何指示或陷阱,以留意和检查.
提前致谢.
好的,这就是我做的.
我创建了一个执行SQL任务并进行了配置,因此: -
General Tab
ConnectionType = OLE DB
SQLSourceType = Direct Input
SQLStatement = (left blank)
BypassPrepare = True
ResultSet = None
Parameter Mapping
(none - leave blank)
Result Set
(none - leave blank)
Expressions
SQLStatementSource = "INSERT INTO FilesProcessed (ProcessedOn, ProviderCode, FinancialMonth, FileName, Status, Comments) SELECT GETDATE(), '" + @[User::providerCode] + "' , " + (DT_STR,6,1252)@[User::financialMonth] + ", '" + @[User::fileName] + "', 'Import - Success', '" + @[User::fileComments] + "'"
Run Code Online (Sandbox Code Playgroud)
然后,只要我设置变量并在变量窗口中填充它们(表达式编辑器将不允许您保存引用不存在的变量的表达式.保留记事本,以便在您返回并编辑时保存内容变量窗口,并在中添加新变量;)
慢慢构建表达式,定期使用Parse表达式按钮进行检查.
归档时间: |
|
查看次数: |
39134 次 |
最近记录: |