私はSql ServerのXML programmmingの経験はありませんが、SQLStatementSource
の内容をSSISファイル(dtsxファイル拡張子)から読み取るためにいくつかのコードを試しています。SQLを引き出す方法
このコードはオンラインで、SQLStatementSource
の先頭に3番目のコンポーネントが追加されましたが、何も返されません。私はどのようにdtsxファイルを添付するのかわかりませんが、私はそれが任意のものに使用できると仮定しています。
任意のポインタ?
SELECT Pkg.props.value('declare namespace p1="www.microsoft.com/SqlServer/Dts";
./p1:Property[@p1:Name=''ObjectName''][1]','nvarchar(max)') as TaskName
, Pkg.props.value('declare namespace p1="www.microsoft.com/SqlServer/Dts";
./@p1:ExecutableType','nvarchar(max)') as TaskType
, Pkg.props.value('declare namespace p1="www.microsoft.com/SqlServer/Dts";
./@p1:SqlStatementSource','nvarchar(max)') as TaskSql
FROM (
select cast(pkgblob.BulkColumn as XML) pkgXML
from openrowset(bulk 'C:\Users\DSNoS\OneDrive\Documents\LoadingProviderContracts_New.dtsx',single_blob) as pkgblob
) t
CROSS APPLY pkgXML.nodes('declare namespace DTS="www.microsoft.com/SqlServer/Dts";
//DTS:Executable[@DTS:ExecutableType!=''STOCK:SEQUENCE''
and @DTS:ExecutableType!=''STOCK:FORLOOP''
and @DTS:ExecutableType!=''STOCK:FOREACHLOOP''
and not(contains(@DTS:ExecutableType,''.Package.''))]'
) Pkg(props)
この問題は解決されましたか?さらに助けが必要ですか?私に1つのヒントを許してください:この質問が解決された場合は、(最良の)回答の投票カウンタの下で受け入れ検査をチェックすることは、非常に親切です。これは、1)この問題を解決済みとマークします。2)フォロワーが最良の解決策を見つけるのをより簡単にします。3)回答者にポイントを払います。あなたが15ポイントを越えてしまったシスは、さらにあなたが寄付に投票するよう頼まれています。これは、ありがとうと言います。ハッピーコーディング! – Shnugo