SQL - JOB sql- update columna varbinary

 
Vista:

JOB sql- update columna varbinary

Publicado por leonardo (3 intervenciones) el 26/10/2014 03:48:20
Buenas, tengo un asunto que me trae dolores de cabeza XD

tengo una columna en una tabla que es tipo varbinary, y en esta hay muchos valores diferentes y mi necesidad es la siguiente:


columna=0xFFFFFFFFFFFF"999999"ASD2132SDD"FFFFFFFFFFFFFFFFFFF

los "999999" seria lo que yo quiero reemplazar que tienen valor fijo, pero a la ves también los siguientes 10 caracteres que tienen valor aleatorio.

por ejemplo:

0xFFFFFFFFFFFF999999ASD2132SDDFFFFFFFFFFFFFFFFFFF

quedaria:

0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

si fuera:

0xFFFFFF234RWESFDF00"999999"ASD2132SDD"5FFFFFFFFF54TRGDFFFFFFFDRGFCV

quedaria:

0xFFFFFF234RWESFDF00FFFFFFFFFFFFFFFF5FFFFFFFFFF54TRGDFFFFFFFDRGFCV

El trabajo buscaría entre todos los caracteres de esa columna específicamente a esos 6 caracteres señalados y los siguientes 10 caracteres y los remplazaría por las (FFFFFFFFFFFFFFFF) estén en el lugar que estén pero sin modificar el resto del código de esa columna.

Es posible esto o solo ilusiono? jeje bueno igual gracias por leer =D


ME OLVIDE DE DETALLAR... uso sql 2000
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

JOB sql- update columna varbinary

Publicado por Isaias (1921 intervenciones) el 27/10/2014 19:33:00
¿Por qué a veces usas " y otras no?

En esta tiene comas:

columna=0xFFFFFFFFFFFF"999999"ASD2132SDD"FFFFFFFFFFFFFFFFFFF

Pero cuando pones el ejemplo, se los quitas

0xFFFFFFFFFFFF999999ASD2132SDDFFFFFFFFFFFFFFFFFFF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JOB sql- update columna varbinary

Publicado por leonardo (3 intervenciones) el 27/10/2014 22:11:54
por que soy horrendo al expresarme xD

supuse que las comillas son para que el lector las encuentre visualmente fácil. pero todo el código siempre es sin comillas como ya se sabe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

JOB sql- update columna varbinary

Publicado por Isaias (1921 intervenciones) el 27/10/2014 22:53:01
Para reemplazar los 999999

DECLARE @MyCadena varbinary

SET @MyCadena = CAST('0xFFFFFFFFFFFF999999ASD2132SDDFFFFFFFFFFFFFFFFFFF' as VARBINARY)

SET @MyCadena = CAST(REPLACE('0xFFFFFFFFFFFF999999ASD2132SDDFFFFFFFFFFFFFFFFFFF', '999999', 'FFFFFF') AS VARBINARY)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JOB sql- update columna varbinary

Publicado por leonardo (3 intervenciones) el 28/10/2014 03:57:55
Hola, gracias por el dato pero me olvide aclarar que en esa columna varbinary el codigo es variable. Por eso puse 2 ejemplos.
La idea es que el trabajo sql busque en ese codigo los 6 caracteres que yo fijaria y los siguientes 10 caracteres y los remplazara por los "16 F" sin alterar el resto del codigo.
No siempre los 6 caracteres estan en la misma posicion, pueden estar al principio o al final del codigo completo. (obvio teniendo siempre los 10 caracteres siguientes a su derecha)



DECLARE @MyCadena varbinary

UPDATE mitabla

SET @MyCadena = CAST('0xFFFFFFFFFFFF999999ASD2132SDDFFFFFFFFFFFFFFFFFFF' as VARBINARY)

SET @MyCadena = CAST(REPLACE('0xFFFFFFFFFFFF999999ASD2132SDDFFFFFFFFFFFFFFFFFFF', '999999', 'FFFFFF') AS VARBINARY)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

JOB sql- update columna varbinary

Publicado por Isaias (1921 intervenciones) el 28/10/2014 18:09:47
He estado haciendo algunas pruebas con tu cadena, pero al parecer no es una cadena valida.

Checa estas rutinas

-- a unicode string
declare @string nvarchar(100)
set @string = 'myworld'

-- convert it to hex
declare @hex varbinary(100)
set @hex=convert(varbinary(100), @string)

-- convert it back to unicode
select @string, @hex, convert(nvarchar(100), @hex)


Si logras esto con tus cadenas, es tan fácil localizar el inicio del 999999 con CHARINDEX, sumarle 4 y hacer el otro replace
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar