2010-11-18 26 views
1

我有一個存儲過程,需要2個參數:ID和日期。
當我將一個大文本傳遞給ID參數時,只考慮了部分文本。就好像文本在某個地方被剪切一樣。我想這是因爲當我執行存儲過程如下:傳遞一個巨大的字符串參數到存儲過程

exec proc '1,2,3,4', '20100101' 

寄託都找到工作,但 當我使用一個大的字符串,而不是第一個參數只有字符串的一部分被切斷。

回答

0

最有可能您的存儲過程的第一個參數的大小有限。在Management Studio中找到該程序,右鍵單擊,選擇修改腳本 - >修改爲..查找第一個參數的聲明並將其更改爲varchar(max)或或nvarchar(max)

0

查看存儲過程的定義 - 它定義它預計參數(右鍵單擊SqlServer的管理工作室 - 點擊「修改」)

見的第一個參數是多少定義,並根據您的需要改變。

0

也許你應該改變這個字符串的數據類型,試着用varchar(Max)來代替。

0
CREATE PROCEDURE dbo.TestXMLIN 
( 
@XMLDOC AS TEXT 
) 
AS 
DECLARE @xmlHandle INT 

EXEC sp_xml_preparedocument @xmlHandle OUTPUT, @xmlDoc 

SELECT * 
FROM OPENXML (@xmlHandle, '/P/C', 2) WITH 
( 
MajorCode VARCHAR(10) './MJ', 
MinorCode VARCHAR(10) './MI' 
) 
)OXML 
EXEC sp_xml_removedocument @xmlHandle 
相關問題