我有一個存儲過程,需要2個參數:ID和日期。
當我將一個大文本傳遞給ID參數時,只考慮了部分文本。就好像文本在某個地方被剪切一樣。我想這是因爲當我執行存儲過程如下:傳遞一個巨大的字符串參數到存儲過程
exec proc '1,2,3,4', '20100101'
寄託都找到工作,但 當我使用一個大的字符串,而不是第一個參數只有字符串的一部分被切斷。
我有一個存儲過程,需要2個參數:ID和日期。
當我將一個大文本傳遞給ID參數時,只考慮了部分文本。就好像文本在某個地方被剪切一樣。我想這是因爲當我執行存儲過程如下:傳遞一個巨大的字符串參數到存儲過程
exec proc '1,2,3,4', '20100101'
寄託都找到工作,但 當我使用一個大的字符串,而不是第一個參數只有字符串的一部分被切斷。
最有可能您的存儲過程的第一個參數的大小有限。在Management Studio中找到該程序,右鍵單擊,選擇修改或腳本 - >修改爲..查找第一個參數的聲明並將其更改爲varchar(max)
或或nvarchar(max)
。
查看存儲過程的定義 - 它定義它預計參數(右鍵單擊SqlServer的管理工作室 - 點擊「修改」)
見的第一個參數是多少定義,並根據您的需要改變。
也許你應該改變這個字符串的數據類型,試着用varchar(Max)
來代替。
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