À la recherche d'un bon exemple de déchiquetage XML par insertion en bloc pour SQL 2005

StackOverflow https://stackoverflow.com/questions/223376

  •  03-07-2019
  •  | 
  •  

Question

Un peu d'aide est nécessaire. Je reçois un fichier XML similaire à celui-ci:

<?xml version="1.0" encoding="utf-16"?>
<dc:GRANTEE xsi:schemaLocation="http://www.blahblahblah.com/FullSchema test.xsd " xmlns:dc="http://www.blahblahblah.com/FullSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <RPGID>90CU0024</RPGID>
    <PLANID>01</PLANID>
    <CASE>
        <CASEID>100001</CASEID>
        <RPGID>90CU0024</RPGID>
        <FILE_O>2008-02-08T00:00:00</FILE_O>
        <ADULT>
            <ADULTID>100001A1</ADULTID>
            <CASEID>100001</CASEID>
            <APRIMARY>1</APRIMARY>
            <ARLTNSHP>BM</ARLTNSHP>
            <ADOB>1978-12-03T00:00:00</ADOB>
            <ARACAI>1</ARACAI>
            <ASEX>2</ASEX>
            <SATX>
                <SATXID>MD2120378</SATXID>
                <ADULTID>100001A1</ADULTID>
                <SAASSESS>2008-02-22T00:00:00</SAASSESS>
                <PUBPRVTX>1</PUBPRVTX>
                <TXADMIT>2008-02-23T00:00:00</TXADMIT>
                <TXSET>5</TXSET>
            </SATX>
        </ADULT>
        <CHILD>
            <CHILDID>100001C1</CHILDID>
            <CASEID>100001</CASEID>
            <CINDEX>1</CINDEX>
            <CHBDATE>2008-02-05T00:00:00</CHBDATE>
            <CHSEX>1</CHSEX>
            <CHRACAI>0</CHRACAI>
            <MALTX>
                <MALTXID>10000023</MALTXID>
                <CHILDID>100001C1</CHILDID>
                <RPTDT>2008-02-05T00:00:00</RPTDT>
                <CHMAL1>2</CHMAL1>
             </MALTX>
         </CHILD>
    </CASE>

Ce que je dois faire est de l'importer et de le détruire en tables avec un proc stocké. J'ai été incapable de trouver autre chose qu'une régurgitation générale des exemples dans les livres en ligne, euh, en ligne. Ce qu'il me faut, c'est un petit guide syntaxique qui montre comment insérer en bloc le fichier (à l'aide d'OPENROWSET?), puis prendre toutes les données et les scinder en tables correspondantes tout en conservant les clés. Il semble que cela devrait être facile, mais le matériel de référence est difficile à trouver. J'ai également accès au schéma si j'en ai besoin et je peux aussi annoter.

Quelqu'un at-il une bonne référence?

Était-ce utile?

La solution

Vous pouvez utiliser l'instruction BULK INSERT avec le mot-clé RAW pour charger les données dans une table avec une seule colonne. Il mettra le document entier dans une seule ligne. Puis interrogez la table et placez les données dans une variable avec un type de données XML.

Cette Le billet de blog montre comment extraire des données du document XML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top