¿Cómo solucionar el error de SQL Server Error Implicit conversion from data type XML to NVARCHAR?
¿Cómo convertir XML en NVARCHAR con SQL Server? Para evitar el error de conversión de XML a NVARCHAR en SQL Server. El mensaje exacto es «No se permite la conversión implícita del tipo de datos xml a nvarchar. Usa la función CONVERT para ejecutar esta consulta.». Con los datos de SQL Server, es útil combinar columnas numéricas, cadenas alfanuméricas y columnas de tipo XML.
Además, para consultar fácilmente los datos XML, es muy conveniente convertir esta columna XML en una de tipo NVARCHAR, por lo que es posible, por ejemplo, filtrar sus datos. En esta publicación, no utilizamos una columna XML sino una variable XML y una variable NVARCHAR.
1. Error de SQL Server Conversión implícita del tipo de datos XML a NVARCHAR
Primero, consideremos este ejemplo XML muy simple, una empresa de tecnología tiene tres empleados. ¡Podría ser una startup de alto potencial, sí! Tenga en cuenta que el código funciona de la misma manera con 30 empleados. Además, para administrar una lista de miles de empleados, entonces use NVARCHAR(MAX), y considere almacenar los datos en tablas.
<empresa> <empleado>SMITH</empleado> <empleado>WILKINS</empleado> <empleado>JOHNSON</empleado> </empresa>
2. Consulta T-SQL para convertir XML en tipo de datos NVARCHAR
Por ejemplo, si usa la columna de tipo XML sin una conversión explícita al tipo NVARCHAR.
DECLARE @Mi_Xml XML; DECLARE @Mi_String NVARCHAR(500); SET @Mi_Xml = '<empresa> <empleado>SMITH</empleado> <empleado>WILKINS</empleado> <empleado>JOHNSON</empleado> </empresa>'; SET @Mi_String = @Mi_Xml ; SELECT @Mi_String;
Después de ejecutar la consulta, SQL Server muestra este error:
No se permite la conversión implícita del tipo de datos xml a nvarchar. Usa la función CONVERT para ejecutar esta consulta.
3. Convertir una columna XML a tipo de datos NVARCHAR sin error
Por lo tanto, obviamente la solución es usar la función CONVERT() de SQL Server para convertir el tipo XML a NVARCHAR o VARCHAR. Entonces, esta consulta simple te permite consultar una tabla que contiene columnas XML e incluso hacer una búsqueda con palabras clave LIKE, por ejemplo.
DECLARE @Mi_Xml XML; DECLARE @Mi_String NVARCHAR(500); SET @Mi_Xml = '<empresa> <empleado>SMITH</empleado> <empleado>WILKINS</empleado> <empleado>JOHNSON</empleado> </empresa>'; SET @Mi_String = CONVERT(VARCHAR(500), @Mi_Xml); SELECT @Mi_String;
4. Conclusión sobre la conversión XML con T-SQL
Para concluir, la función SQL CONVERT permite convertir y manipular fácilmente las etiquetas XML. Este artículo explica cómo evitar el error clásico de conversión de SQL Server del tipo de datos XML a Nvarchar. Para ir más allá, consulte también los detalles de los tipos de datos en la documentación oficial de SQL Server.
Finalmente, este post explica cómo evitar el error de SQL Server de conversión implícita del tipo de datos XML a NVARCHAR y convertir XML en NVARCHAR, ¿quieres aprender más sobre la gestión de cadenas en SQL Server? Consulta la sección a continuación con más tutoriales.
Tutoriales sobre cómo solucionar errores de SQL Server
- ¿Cómo evitar la violación de la restricción de clave única con SQL Server?
- Tutorial para dividir texto con la función XML o STRING_SPLIT en SQL Server.
- ¿Cómo dividir un texto después de un carácter específico con SQL Server?
- Tutorial para manejar variables de texto T-SQL con más de 8000 caracteres.
¿Este post es útil? Compártelo 🙂
Be the first to comment