Saltar al contenido

BLOB a cadena, SQL Server

Solución:

El problema aparentemente no fue el servidor SQL, sino el sistema NAV que actualiza el campo. Existe una propiedad de compresión que se puede utilizar en campos BLOB en NAV, que no forma parte de SQL Server. Entonces, la compresión personalizada hizo que los datos fueran ilegibles, aunque la conversión funcionó.

La solución fue desactivar la compresión a través del Diseñador de objetos, Diseñador de tablas, Propiedades del campo (Mayús + F4 en la fila del campo).

Después de eso, la extracción de datos se puede realizar con, por ejemplo: seleccione convertir (varchar (max), emitir (BLOBFIELD como binario)) de la tabla

¡Gracias por todas las respuestas que fueron correctas en muchos sentidos!

La respuesta aceptada me funciona solo para los primeros 30 caracteres. Esto funciona para mi:

select convert(varchar(max), convert(varbinary(max),myBlobColumn)) FROM table_name

Depende de cómo se pusieron inicialmente los datos en la columna. Pruebe cualquiera de estos como debería funcionar:

SELECT CONVERT(NVarChar(40), BLOBTextToExtract)
FROM [NavisionSQL$Customer];

O si fuera solo varchar

SELECT CONVERT(VarChar(40), BLOBTextToExtract)
FROM [NavisionSQL$Customer];

Usé este script para verificar y probar en SQL Server 2K8 R2:

DECLARE @blob VarBinary(MAX) = CONVERT(VarBinary(MAX), 'test');

-- show the binary representation
SELECT @blob;

-- this doesn't work
SELECT CONVERT(NVarChar(100), @blob);

-- but this does
SELECT CONVERT(VarChar(100), @blob);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *