Uso de xml para crear tabla y meter datos

Category: General 8 years ago
Buenas tardes,

Me enfrento a un nuevo proyecto, en el cual recibo un documento xml. Tiene cientos de campos y he de crear una tabla en sql server 2008 para que en futuras ocasiones meter ahí los valores que traigan los ficheros xml que me mandan.

Y una última duda más.
Teniendo este XML de ejemplo, vosotros cómo crearías una tabla en Sql server? (si no es mucho pedir), qué campos pondríais y cómo?
<AMB_A01>
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&amp;amp;</MSH.2>
<MSH.3>
<HD.1>A53</HD.1>
</MSH.3>
<MSH.5>
<HD.1>S04</HD.1>
</MSH.5>
<MSH.7>
<TS.1>20120906134315</TS.1>
</MSH.7>
</MSH>
</AMB_A01>

Desde ya, muchas gracias por adelantado.

Un saludo
Like it on Facebook, +1 on Google, Tweet it or share this topic on other bookmarking websites.
  • Re: Uso de xml para crear tabla y meter datos

    by » 8 years ago


    Existe una utilidad gratuita, xsd2db , pero no he logrado crear la tabla. Entre las opciones de los comandos en msdos no da opción a poner la clave ni usuario de conexión para sql server, por lo que me deniega la creación de la tabla.

  • Re: Uso de xml para crear tabla y meter datos

    by » 8 years ago


    Quieres crear una tabla desde un XML?

  • Re: Uso de xml para crear tabla y meter datos

    by » 8 years ago


    Ya he logrado crearla, pero no se hace muy bien con esa herramienta. Y finalmente la he hecho a mano G3DBA.

    Ahora mis dudas es saber cómo insertar los datos de los ficheros xml que recibo a una tabla.
    El problema es que no todos los mensajes tendrán la misma estructura, dependerán de si a veces tendrán más o menos datos.

    Por ejemplo, este es un fragmento del XML, y como ves la etiqueta PID.3 se abre y cierra varias veces:

    <PID>
    <PID.1>1</PID.1>
    <PID.3>
    <CX.1>4312302</CX.1>
    <CX.4>
    <HD.1>M</HD.1>
    </CX.4>
    <CX.5>CAP</CX.5>
    <CX.9>
    <CWE.1>6</CWE.1>
    </CX.9>
    </PID.3>
    <PID.3>
    <CX.1>14741B</CX.1>
    <CX.4>
    <HD.1>MI</HD.1>
    </CX.4>
    <CX.5>DNI</CX.5>
    </PID.3>
    <PID.3>
    <CX.1>33457880</CX.1>
    <CX.4>
    <HD.1>ES</HD.1>
    </CX.4>
    <CX.5>TISIS</CX.5>
    </PID.3>
    <PID.3>
    <CX.1>9999999999</CX.1>
    <CX.4>
    <HD.1>SSS</HD.1>
    </CX.4>
    <CX.5>NNSS</CX.5>
    <CX.9>
    <CWE.1>T-1-1-10</CWE.1>
    </CX.9>
    </PID.3>
    </PID>

    Aunque claro, ahora me doy cuenta que quizá esta pregunta no corresponda pq es ya más programación en C# que sql server.
    O quizá exista algún procedimiento de sql server que permita leer los xml y pasar los datos a las tablas.

    Un saludo

  • Re: Uso de xml para crear tabla y meter datos

    by » 8 years ago


    Mira este es un ejemplo de como cargar una tabla con xml

    INSERT INTO T
    SELECT 10, xCol
    FROM (SELECT *
    FROM OPENROWSET (BULK 'C:\MyFile\xmlfile.xml', SINGLE_CLOB)
    AS xCol) AS R(xCol)


    Saludos

  • Re: Uso de xml para crear tabla y meter datos

    by » 8 years ago


    Se agradece, G3DBA, pero eso es para insertar el xml completo en una columna xml de una tabla (si no me equivoco...).

    Mi intención es recorrer los campos del fichero xml, que a veces estará compuesto por más o menos nodos, recoger los valores e insertarlos en la tabla.

You do not have permissions to reply to this topic.
Powered by CjForum