一个关于exec的问题
想让字符串中的@XML_FILE作为exec的返回值,但执行时遇到了 
 过程需要类型为    'ntext/nchar/nvarchar '   的参数    '@statement '。问题,到底是什么问题呢???请各位高人指点迷津....   
 SET   @exeString   =    'SELECT   @XML_FILE   =   ( '   + 
 			          'SELECT   CONVERT(xml,T.c)    '   + 
 			          'FROM   OPENROWSET   (BULK    '   +   char(39)   +   @XML_FILE_NAME   +   char(39)   +    ',SINGLE_BLOB)   T(c)) '   
             print   @exeString 
             exec      sp_executesql   @exeString, '@XML_FILE   XML   OUTPUT ',@XML_FILE   OUTPUT 
------解决方案--------------------过程需要类型为  'ntext/nchar/nvarchar ' 的参数  '@statement '。   
 ---------- 
 這個提示已經很明顯了。     
 語法 
 sp_executesql [@stmt =] stmt 
 [ 
     {, [@params =] N '@parameter_name  data_type [,...n] ' } 
     {, [@param1 =]  'value1 ' [,...n] } 
 ]   
 引數 
 [@stmt =] stmt   
 包含 Transact-SQL 陳述式或批次的 Unicode 字串。stmt m 必須是 Unicode 常數或可以以隱含方式轉換為 ntext 的變數。更複雜的 Unicode 運算式是不允許的 (例如以 + 運算子串連二個字串),也不允許字元常數。如果指定常數,其前置字元必須是 N,例如,Unicode 常數 N’sp_who’ 是合法的,但字元常數 ‘sp_who’ 是不合法的。字串的大小僅受限於可用資料庫伺服器記憶體。   
 stmt 可以包含與變數名稱相同形式的參數,例如:   
 N 'SELECT * FROM Employees WHERE EmployeeID = @IDParameter '   
 stmt 中包括的每個參數必須在 @params 參數定義清單與參數值清單中都有對應的項目。   
 [@params =] N '@parameter_name  data_type [,...n] '   
 包含嵌入 stmt 的所有參數之定義的字串。字串必須是 Unicode 常數或可以以隱含方式轉換為 ntext 的變數。每個參數定義包含一個參數名稱與資料型別。n 是指出額外參數定義的替代符號 (Placeholder)。stmt 中指定的每個參數都必須在 @params中定義。如果 stmt 中的 Transact-SQL 陳述式或批次不包含參數,就不需要 @params。參數的預設值為 NULL。   
 [@param1 =]  'value1 '   
 參數字串中定義的第一個參數值。這個值可以是常數或變數。stmt 中包括的每個參數都必須有參數值。如果 stmt 中的 Transact-SQL 陳述式或批次沒有參數,就不需要參數值。   
 n   
 額外參數值的替代符號。值可以只是常數或變數。值不可以是函數或使用運算子建立的運算式等較複雜的運算式。