有大量在线文档展示了如何通过以下方式之一读取 SSIS 项目参数:
- Biml 标签
- SSIS C# 脚本任务
但是我花了六个多小时试图从BimlScript 中的 C# 代码中找到一种方法。当然,我是 Biml n00b,所以也许我还没有找到解决方案,因为它很容易没人谈论它。
我的 Biml(敏感数据替换为 '***'):
<#@ template language="C#" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.OleDb" #>
<#
string connString = "Data Source=***;Provider=***;Persist Security Info=True;Location=***;uid=***;pwd=" + #>@[$Project::PW]<#;
OleDbConnection db2Conn = new OleDbConnection(connString);
string queryString = "SELECT * FROM SYSIBM.SYSTABLES WHERE DBNAME = '***' WITH UR";
OleDbCommand myCommand = new OleDbCommand(queryString);
myCommand.Connection = db2Conn;
db2Conn.Open();
myCommand.ExecuteReader();
db2Conn.Close();
#>
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Packages>
<Package Name="DB2Test" />
</Packages>
</Biml>
这给出了错误:
Operator '+' cannot be applied to operands of type 'string' and 'void'
这让我认为字符串连接在它可以获取项目参数之前就已经解决了。
请注意,如果我在连接字符串中硬编码密码,它工作正常。