[英]passing a huge string parameter to stored procedure
我有一個采用2個參數的存儲過程:ID和Date。
當我將大文本傳遞給ID參數時,僅考慮部分文本。 好像文本在某個位置被剪切了一樣。 我想這是因為當我執行存儲過程時,如下所示:
exec proc '1,2,3,4', '20100101'
一切都能找到,但是當我使用大字符串而不是第一個參數時,僅會剪切掉一部分字符串。
查看存儲過程的定義-它已定義了期望的參數(在SqlServer Management Studio中右鍵單擊-單擊“修改”)
查看第一個參數定義了多少,並根據需要進行更改。
也許您應該更改此字符串的數據類型,請嘗試使用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
您的存儲過程的第一個參數很可能具有有限的大小。 在Management Studio中找到該過程,右鍵單擊,選擇Modify或Script-> Alter To.。查找第一個參數的聲明,並將其更改為varchar(max)
或nvarchar(max)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.