2010-11-18 1 views
1

J'ai une procédure stockée qui prend 2 paramètres: ID et Date.
Lorsque je passe un gros texte au paramètre ID, seule une partie du texte est prise en compte. comme si le texte était coupé à un certain endroit. Je pensais que cela parce que quand j'exécuter la procédure stockée comme suit:en passant un énorme paramètre de chaîne à la procédure stockée

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

travaux everthing trouver mais quand j'utilise une grande chaîne au lieu du 1er argument de seulement une partie de la chaîne est coupée.

Répondre

0

Très probablement, le premier paramètre de votre procédure stockée a une taille limitée. Dans Management Studio localisez la procédure, faites un clic droit, choisissez Modifiez ou Script-> Alter To .. Recherchez la déclaration du premier paramètre et remplacez-la par varchar(max) ou nvarchar(max).

0

Voir la définition de la procédure stockée - il a des paramètres définis, il attend (clic droit en studio de gestion SqlServer - cliquez sur « Modifier »)

Voyez combien est défini pour le premier argument et modifier selon vos besoins .

0

peut-être vous devriez changer le type de données de cette chaîne, essayez d'utiliser varchar(Max) à la place.

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 
Questions connexes