Error T-SQL conversión implícita del tipo XML a NVARCHAR

¿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

¿Este post es útil? Compártelo 🙂 

Be the first to comment

Leave a Reply

Tu dirección de correo no será publicada.


*