我有一个存储过程,它带有2个参数:ID和Date 当我将大文本传递给ID参数时,只考虑部分文本。好像文本在某个地方被剪切了一样。我认为这是因为当我按如下方式执行存储过程时:
exec proc '1,2,3,4', '20100101'
everthing works找到 但是当我使用一个大字符串而不是第一个参数时,只有部分字符串被剪切。
答案 0 :(得分:0)
查看存储过程的定义 - 它已经定义了预期的参数(右键单击SqlServer Management studio - 单击“修改”)
查看为第一个参数定义了多少,并根据您的需要进行更改。
答案 1 :(得分:0)
也许您应该更改此字符串的数据类型,尝试改为使用varchar(Max)
。
答案 2 :(得分: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
答案 3 :(得分:0)
存储过程的第一个参数很可能是有限的大小。在Management Studio中找到该过程,右键单击,选择修改或脚本 - >更改为... 查找第一个参数的声明并将其更改为{{1 }或varchar(max)
。