私は、テスト目的のサンプルテーブルの1つとしてSSISでColumn Null Ratio Profile request
を要求しましたが、XML形式のInclusion Report
を問題なく使用しましたが、どのようにして<NullCount>
をレポートごとに利用できますか選択した列の?または、どのようにして、要求されたすべての列についてヌル・ポピュレーション情報を抽出できますか?データプロファイリングからのSSIS抽出値タスク結果
タスクから生成されたXMLレポートの一部です:
<Profiles>
<ColumnNullRatioProfile ProfileRequestID="NullRatioReq" IsExact="true">
<DataSourceID>{AD39E650-3865-4703-89AB-B9D8D7A83CB3}</DataSourceID>
<Table DataSource="njpp-dm02" Database="Reporting" Schema="dbo" Table="Error" RowCount="6" />
<Column Name="Error" SqlDbType="VarChar" MaxLength="-1" Precision="255" Scale="255" LCID="1033" CodePage="0" IsNullable="true" StringCompareOptions="0" />
<NullCount>0</NullCount>
</ColumnNullRatioProfile>
<ColumnNullRatioProfile ProfileRequestID="NullRatioReq" IsExact="true">
<DataSourceID>{AD39E650-3865-4703-89AB-B9D8D7A83CB3}</DataSourceID>
<Table DataSource="njpp-dm02" Database="Reporting" Schema="dbo" Table="Error" RowCount="6" />
<Column Name="Runtime" SqlDbType="DateTime" MaxLength="0" Precision="255" Scale="255" LCID="-1" CodePage="0" IsNullable="true" StringCompareOptions="0" />
<NullCount>0</NullCount>
</ColumnNullRatioProfile>
</Profiles>
上記のXMLコードから、あなたは私がそれに続い<NullCount>
は私が必要とする値であると考えてい<Column Name = "Error"...>
から見ることができるよう抽出する(それは正しい結果です)。
私はそのXMLレポートを処理するためにC#コードの下で試してみましたが、有用な情報なしで私にエラーがスローされ、複数の列があるかどうか、どのように取得するか、結果の
C#コード:
//code before
using System.XML;
//code after
public void Main()
{
String InclusionRpt = Dts.Variables["User::InclusionRpt"].Value.ToString();
XmlDocument xml = new XmlDocument();
xml.LoadXml(InclusionRpt);
XmlNodeList nodelist = xml.GetElementsByTagName("NullCount");
int i = 0;
for (i = 0; i <= 1; i++)
{
if (i == 0)
{
MessageBox.Show("The total number of Null found in \"Error\" is " + nodelist[i].InnerText);
}
if (i == 1)
{
MessageBox.Show("The total number of Null found in \"RunTime\" is " + nodelist[i].InnerText);
}
}
}
Dts.TaskResult = (int)ScriptResults.Success;
}
だからもう一度、短期での質問、どのように私は、これらの二つの列(エラー、およびランタイム)にnull人口を示すことができましたか?おかげで:)
既存のコードが返すエラーは何ですか? –
@TabAllemanは、 '例外は呼び出しのターゲットによってスローされました'と言っていますが、 'XmlNodeList nodelist = xml.GetElementsByTagName(" NullCount ");のために起こった問題を特定しました。このタグを取得する – LONG
'LoadXML'行の後にスクリプトにブレークポイントを置き、' xml'の値を見ると、期待されるXMLが入っていますか? –