Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Annoying null value conversion in XML with Openxml()
Message
De
28/12/2005 21:35:26
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Autre
Versions des environnements
SQL Server:
SQL Server 2000
Divers
Thread ID:
01081179
Message ID:
01081551
Vues:
8
>When XML string which includes some null value in some Varchar/char type fields parsed back to a temp table,the null value become character type - "null",not real null value. Could anybody tell me how to avoid or solve this ? thanks.

>You didn't post the XML so my guess is that XML represents NULL values >incorrectly.

Sergey,
XML example:
declare @cxml varchar(8000)
select @cxml='<?xml version="1.0" ?> 

<VOYCALLS>
  <Call>
  <VisitNo>6</VisitNo> 
  <VisitAt>SGSIN</VisitAt> 
  <PortName>SINGAPORE</PortName> 
  <Eta>200512202200</Eta> 
  <Etb>200512202300</Etb> 
  <Etd>200512211424</Etd> 
  <Ata>200512202200</Ata> 
  <Atb>200512210024</Atb> 
  <Atd>200512220200</Atd> 
  </Call>

  <Call>
  <VisitNo>7</VisitNo> 
  <VisitAt>CNSHA</VisitAt> 
  <PortName>SHANGHAI</PortName> 
  <Eta>200512270900</Eta> 
  <Etb>200512280800</Etb> 
  <Etd>200512290100</Etd> 
  <Ata>null</Ata> 
  <Atb>null</Atb> 
  <Atd>null</Atd> 
  </Call>
</VOYCALLS>
'
exec SP_readXML @cxml
SP_readXML:
CREATE PROCEDURE  SP_readXML 
(
@xml  text
)
as
declare @xdoc int
exec sp_xml_preparedocument @xdoc output, @xml 
select t.*  into #call   from openxml (@xdoc, '/VOYCALLS/Call', 2)   
with(VisitNo varchar(5), VisitAt varchar(5), PortName varchar(35), 
                               Eta varchar(12), Etb varchar(12), Etd varchar(12),  
                               Ata varchar(12), Atb varchar(12), Atd varchar(12) )  as t
exec sp_xml_removedocument @xdoc

select left(ata,2) as  test_str from #call
GO
Steven
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform