Requete sur un flux XML > 8000 carateres
Le
Eric
/* ;-)
Bonjour,
j'utilise "sp_xml_preparedocument" et "OPENXML" pour faire des requêtes à
partir de données XML. Cela donne quelque chose du genre :
*/
--
-- fichier XML à lire
--
declare @xmlfile varchar(255)
set @xmlfile = 'C:\Customers.xml'
--
-- recup. du contenu du fichier XML
--
DECLARE @doc varchar(8000)
create table #txml (xml_data text)
truncate table #txml
exec(
'BULK INSERT #txml FROM ''' + @xmlfile + ''' ' +
' WITH (
FIELDTERMINATOR = '''',
ROWTERMINATOR = ''''
) '
)
select @doc = xml_data from #txml
drop table #txml
--
--
-- handle local du doc XML
--
DECLARE @idoc int
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
--
--
-- SELECT avec OPENXML
--
SELECT * FROM OPENXML (@idoc, '/ROOT/Customer', 2)
WITH (
CustomerID varchar(10),
CustomerName varchar(255)
)
--
--
-- suppr. du handle local
--
EXEC sp_xml_removedocument @idoc
--
/*
voila, ça marche, mais pas si le fichier XML dépasse une certaine
taille. En fait je suis limité à cause de la variable @doc qui est déclarée
comme varchar(8000). Je n'ai pas trouvé de solution pour pouvoir lire des
fichiers XML dépassant 8 Ko.
Quelqu'un a t-il une idée ?
Merci d'avance,
Eric
*/
Bonjour,
j'utilise "sp_xml_preparedocument" et "OPENXML" pour faire des requêtes à
partir de données XML. Cela donne quelque chose du genre :
*/
--
-- fichier XML à lire
--
declare @xmlfile varchar(255)
set @xmlfile = 'C:\Customers.xml'
--
-- recup. du contenu du fichier XML
--
DECLARE @doc varchar(8000)
create table #txml (xml_data text)
truncate table #txml
exec(
'BULK INSERT #txml FROM ''' + @xmlfile + ''' ' +
' WITH (
FIELDTERMINATOR = '''',
ROWTERMINATOR = ''''
) '
)
select @doc = xml_data from #txml
drop table #txml
--
--
-- handle local du doc XML
--
DECLARE @idoc int
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
--
--
-- SELECT avec OPENXML
--
SELECT * FROM OPENXML (@idoc, '/ROOT/Customer', 2)
WITH (
CustomerID varchar(10),
CustomerName varchar(255)
)
--
--
-- suppr. du handle local
--
EXEC sp_xml_removedocument @idoc
--
/*
voila, ça marche, mais pas si le fichier XML dépasse une certaine
taille. En fait je suis limité à cause de la variable @doc qui est déclarée
comme varchar(8000). Je n'ai pas trouvé de solution pour pouvoir lire des
fichiers XML dépassant 8 Ko.
Quelqu'un a t-il une idée ?
Merci d'avance,
Eric
*/

Poser une question


Alain
"Eric" news:40d996c9$0$21501$
déclarée
Serveur : Msg 2739, Niveau 16, État 1, Ligne 2
Les types de données text, ntext et image sont interdits dans les variables
locales.
Une autre méthode serait la suivante :
http://sqlxml.org/faqs.aspx?faqB
mais je ne l'ai pas encore testée, je préfèrerais trouver quelque chose de
plus simple, donc je continue à chercher.
Eric
"Alain" news:
à
des