Dans une procédure stockée j'ai besoin d'envoyer un tableau de int en paramètre.
Est-ce possible ?
Comment faire ?
Merci beaucoup
Dans une procédure stockée j'ai besoin d'envoyer un tableau de int en paramètre.
Est-ce possible ?
Comment faire ?
Merci beaucoup
Salut,
deux solutions :
- un grand varchar avec un délimiteur, que tu parses dans ta sp, par exemple à l'aide d'une fonction qui retourne une table.
- une structure XML que tu envoies dans un grand varchar, ou un TEXT, et que tu convertis en table dans ta sp avec OPENXML.
Un exemple de openxml que j'ai sous la main :
Pour un XML de ce genre :
Code comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7<Elements> <Element> <Key/> <Value/> </Element> </Elements>
... ou sans passer par une variable table, directement dans un JOIN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 DECLARE @idoc int DECLARE @tField TABLE (FieldName varchar(100), Value varchar(100)) EXEC master.dbo.sp_xml_preparedocument @idoc OUTPUT, @KeyValue INSERT INTO @tField (FieldName, Value) SELECT FieldName, Value FROM OPENXML(@idoc, '/Elements/Element', 2) WITH (FieldName varchar(100) 'Key', Value varchar(100))
En étant conscient que les performances du OPENXML peuvent poser problème sur un serveur très sollicité. A tester.
C'est un serveur très sollicité donc je vais faire la première solution.
Comment je fais pour le parser ?
Quels sont les fonctions à utiliser dans sqlserver ?
Merci beaucou pde ton aide.
Tu as des exemples ici : http://www.aspfaq.com/show.asp?id=2248.
Partager