![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
In a Asp.Net 3.5 application I need to read this XML chunk, inside a Stored Procedure (sql Server 2008): declare @xml varchar set @Xml = '<Root><Foto><txtNomeFoto>150-1.jpg</txtNomeFoto><txtDescrizione>150-1</txtDescrizione><IdCategoria>1</IdCategoria><IdSc>1</IdSc><IdScSc>1</IdScSc><urlFotoPiccola>-FotoMie-Piccole-</urlFotoPiccola><urlFotoGrande>-FotoMie-Grandi-</urlFotoGrande><txtNomeFotoPiccola>150-1.jpg</txtNomeFotoPiccola></Foto></Root>' declare @xml1 int EXEC sp_xml_preparedocument @xml1 OUTPUT, @xml select txtNomeFoto, txtDescrizione, IdCategoria, idSc, IdScSc, urlFotoPiccola, urlFotoGrande, txtNomeFotoPiccola FROM OPENXML (@xml1, 'Root/Foto',2) WITH (txtNomeFoto varchar, txtDescrizione varchar, IdCategoria bigint, IdSc bigint, IdScSc bigint, urlFotoPiccola varChar, urlFotoGrande varchar, txtNomeFotoPiccola varchar) The procedure is a little more complex and the xml is passed as parameter, but in this code I have the following error code: 0xc00ce562 tag "<" not closed. Where is my mistake? Tks in advance for any help Alberto - Italy . |
#3
| |||
| |||
|
|
As you haven't declared a length for your varchar it is defaulting to a length of 1. Try this: declare @xml varchar(max) Note this applies to you OPENXML statement too, eg: WITH (txtNomeFoto varchar(50), txtDescrizione varchar(50), IdCategoria bigint, IdSc bigint, IdScSc bigint, urlFotoPiccola varchar(50), urlFotoGrande varchar(50), txtNomeFotoPiccola varchar(50) ) Also, as you're using SQL 2008 you should probably be using the XML data-type and it's methods instead of OPENXML "Alberto" wrote: In a Asp.Net 3.5 application I need to read this XML chunk, inside a Stored Procedure (sql Server 2008): declare @xml varchar set @Xml = '<Root><Foto><txtNomeFoto>150-1.jpg</txtNomeFoto><txtDescrizione>150-1</txtDescrizione><IdCategoria>1</IdCategoria><IdSc>1</IdSc><IdScSc>1</IdScSc><urlFotoPiccola>-FotoMie-Piccole-</urlFotoPiccola><urlFotoGrande>-FotoMie-Grandi-</urlFotoGrande><txtNomeFotoPiccola>150-1.jpg</txtNomeFotoPiccola></Foto></Root>' declare @xml1 int EXEC sp_xml_preparedocument @xml1 OUTPUT, @xml select txtNomeFoto, txtDescrizione, IdCategoria, idSc, IdScSc, urlFotoPiccola, urlFotoGrande, txtNomeFotoPiccola FROM OPENXML (@xml1, 'Root/Foto',2) WITH (txtNomeFoto varchar, txtDescrizione varchar, IdCategoria bigint, IdSc bigint, IdScSc bigint, urlFotoPiccola varChar, urlFotoGrande varchar, txtNomeFotoPiccola varchar) The procedure is a little more complex and the xml is passed as parameter, but in this code I have the following error code: 0xc00ce562 tag "<" not closed. Where is my mistake? Tks in advance for any help Alberto - Italy . |
![]() |
| Thread Tools | |
| Display Modes | |
| |