Je me demandais si quelqu'un pouvait aiderSQL Server 2008 - Déchiquetage XML aux tables doivent conserver la valeur DATE INCONNUE NULL
Je suis en mesure d'importer avec succès un document XML à une table avec un type de données XML SQL Server2008, mais quand j'essaye de déchiqueter de cette table à une table intermédiaire toutes les valeurs de DATE sans une date entrée sont insérées à la table intermédiaire comme 1900-01-01.
Y at-il un moyen de couper le cleaver qui me manque pour l'empêcher de faire cela et d'insérer simplement la valeur NULL à la place. Je pourrais utiliser NULLIF sur la table de transfert et remplacer 1900-01-01 par null mais je suis réticent à le faire en cas de valeurs 1900-01-01 réelles.
Mon code ressemble à ce
SELECT tab.col.value('LastDate[1]','DATE') LastARD'
FROM import.XMLCompanyDetail
CROSS APPLY
xmldata.nodes('//VN/CompanyList/Row') AS tab(col)
Un grand merci
S'il vous plaît voir ci-dessous le code XML exemple que je importe
<?xml version="1.0" encoding="ISO-8859-1" ?>
<VN>
<CompanyList>
<Row num="1"><CoNum>7878</CoNum><CoName>ExampleName</CoName><DInc>1978-12-30</DInc><DDis></DDis></Row>
</CompanyList>
</VN>
La date DDIS devrait être NULL, mais plutôt quand il importe à ma table de transfert, elle insère 1901-01-01 à la place.
code mis à jour pour montrer ce que je veux dire
create table staging_table
(DInc DATE NULL, LastARD DATE NULL);
with XMLCompanyDetail as
(
SELECT CAST('<?xml version="1.0" encoding="ISO-8859-1" ?>
<VN>
<CompanyList>
<Row num="1"><CoNum>7878</CoNum><CoName>ExampleName</CoName><DInc>1978-12-30</DInc><DDis></DDis></Row>
</CompanyList>
</VN>
' AS XML) AS xmldata
)
INSERT INTO Staging_Table
SELECT tab.col.value('DInc[1]','DATE') DInc,
tab.col.value('DDis[1]','DATE') LastARD
FROM XMLCompanyDetail
CROSS APPLY
xmldata.nodes('//VN/CompanyList/Row') AS tab(col)
SELECT * FROM Staging_table
drop table staging_table
Pourriez-vous également fournir une version réduite du code XML? –
HI Martin, j'ai ajouté l'exemple XML. Merci beaucoup d'avoir pris le temps de jeter un coup d'œil. – Pixelated