2011-10-30 6 views
1

この構文を使用すると、以下のエラーが発生します。私は、ノードの関数に引数を渡すことができるようにしたい: -T-SQLノードメソッドに引数を渡す(XML CROSS APPLY)

CROSS APPLY XML_TPYE_COLUMN.nodes(@p_Xpath) AS Tab(Col) 

がエラー:

​​3210

誰かが私はこれを正しく行うのですか教えてもらえますか?

答えて

1

ノードのパラメータは文字列リテラルでなければならないため、動的SQLを使用する必要があります。これは、あなたがsp_executesqlをしたときのやり方に似ています。

は、言い換えれば、あなたはsp_executesqlをするデータ型はnvarchar(max)のようにあなたの全体のSQLステートメントを構築し、それを渡す必要があります:

DECLARE @statement nvarchar(max)= N'select ... CROSS APPLY col.nodes('[email protected]_Xpath+') AS Tab(Col)' 

execute sp_executesql [email protected] 
関連する問題