これは SQL CLR です。SQL から XML を受け取り、特定のノードの値を取得して返す関数を作成しようとしています。
[SqlFunction]
public static SqlString FnGetQuoteNumber(XmlDocument xmlDoc)
{
string nodeValue = null;
xmlDoc.Load(xmlDoc.ToString());
XmlNode node = xmlDoc.DocumentElement.SelectSingleNode("//Identifier[@name='Item1']");
if (xmlDoc.DocumentElement != null)
{
nodeValue = node.Attributes["value"].Value;
}
return new SqlString(nodeValue);
}
SqlXml xmlDoc
しかし、その後、パラメータをではなくas として宣言すべきではないことに気付きましたXmlDocument xmlDoc
。
その場合は、XmlDocument
もう扱っていないため、上記のことはできません ( DocumentElement
/selectSingleNode
などはありません)。
sに対してこれを行う正しい方法は何でしょうSqlXml
か?
XmlDocument
また、これをデプロイしようとすると、これを取得し続けます(これは、パラメーターとして渡そうとしていることと関係があると思います):
アセンブリ SolutionName.dll のサーバー localhost : DATABASE への展開を開始します
SQL Server のターゲット インスタンスと互換性のないバージョンの .NET Framework 用にビルドされた SQL CLR プロジェクトを展開すると、次のエラーが表示されることがあります: "展開エラー SQL01268: アセンブリの検証に失敗したため、アセンブリの CREATE ASSEMBLY が失敗しました"。この問題を解決するには、プロジェクトのプロパティを開き、.NET Framework のバージョンを変更します。
c:\***** name.dll: デプロイ エラー: パラメーター System.Xml.XmlDocument xmlDoc の型を作成できませんでした
ビルドに失敗しました。
経過時間 00:00:01.96
========== ビルド: 1 成功または最新、0 失敗、0 スキップ ==========
========== デプロイ: 0 成功、1 失敗、0 スキップ ==========
誰でも私に手を差し伸べることができますか?
XML のスクリーンショット: