簡體   English   中英

將巨大的字符串參數傳遞給存儲過程

[英]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中找到該過程,右鍵單擊,選擇ModifyScript-> Alter To.。查找第一個參數的聲明,並將其更改為varchar(max)nvarchar(max)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM