elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [Resuelto] Insertar Xml con DTD interno en SQL Server
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Insertar Xml con DTD interno en SQL Server  (Leído 2,014 veces)
K-YreX


Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
[Resuelto] Insertar Xml con DTD interno en SQL Server
« en: 21 Marzo 2020, 21:03 pm »

Mi problema, como dice el asunto es el siguiente: tengo un fichero xml muy sencillo con un dtd interno y quiero pasar su contenido a una tabla de SQL Server. (Estoy utilizando SSMS 2014). Lo primero que había intentado era:
Código
  1. DECLARE @doc xml
  2. SELECT @doc = (CAST x AS xml) FROM OPENROWSET(BULK 'ruta', SINGLE_BLOB) AS T(x)
  3.  
Pero al intentar ejecutarlo me aparecía el siguiente error:
Código:
No se permite analizar XML con DTD de un subconjunto interno. Utilice CONVERT con la opción de estilo 2 para habilitar la compatibilidad limitada con DTD de subconjuntos internos. 

Investigué un poco el uso de CONVERT y cambié la sentencia anterior por:
Código
  1. SELECT @doc = CONVERT(xml, x, 2) FROM OPENROWSET(BULK 'ruta', SINGLE_BLOB) AS T(x)
Parece que se ejecuta correctamente mostrando el siguiente mensaje:
Código:
Se ha quitado del DTD XML uno o más fragmentos XML. Se han omitido los subconjuntos externos existentes. 

Pero a la hora de intentar trabajar con la variable @doc me sale el siguiente error:
Código:
Debe declarar la variable escalar "@doc". 


Ya de paso aprovecho para preguntar si conocéis de alguna guía sobre SQL Server ya que voy buscando información según la voy necesitando pero no llego a consolidar nada de forma teórica. Muchas gracias desde ya.

PD: El documento xml es válido y como es lógico pero por si acaso lo digo: donde he ido poniendo 'ruta' obviamente es la ruta completa de mi fichero xml pero para no copiarla entera...  :-X


EDIT RESUELTO: Vale, problema resuelto. Tengo el día tonto y estaba ejecutando únicamente la última sentencia. He seleccionado desde el DECLARE hasta el final y ya funciona correctamente... :rolleyes: :rolleyes:


« Última modificación: 21 Marzo 2020, 21:39 pm por YreX-DwX » En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Insertar bool en bdd, (slq server y c#)???
Bases de Datos
Hartigan 4 6,457 Último mensaje 9 Septiembre 2010, 20:32 pm
por Hartigan
[Resuelto] Insertar fichero .skp en html 5
Desarrollo Web
yoelrodguez 2 3,340 Último mensaje 3 Septiembre 2015, 19:06 pm
por yoelrodguez
[Resuelto] GIF de FB en cache o server externo?
Desarrollo Web
[u]nsigned 5 3,188 Último mensaje 24 Diciembre 2016, 08:17 am
por engel lex
Insertar datos automaticamente en SQL Server con PHP
PHP
Brandon 1 2,274 Último mensaje 23 Febrero 2018, 11:40 am
por srWhiteSkull
[Resuelto] [Pregunta]: ¿En que formularios insertar captchas?
Desarrollo Web
Leguim 1 3,048 Último mensaje 26 Septiembre 2019, 02:49 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines