No no tenes que hacer nada raro, que collation tiene esa base? Si haces una
query ves los acentos?

 

 

 

Maximiliano Damian Accotto

Microsoft MVP en SQL Server

http://Blog.Maxiaccotto.com

 

De: dbms@mug.org.ar [mailto:d...@mug.org.ar] En nombre de Galletti, Nancy
Enviado el: lunes, 05 de octubre de 2009 12:38 p.m.
Para: Maxi
Asunto: [dbms] RE: [dbms] RE: [demás] Reemplazo de vocales acentuadas en SQL
Server 7

 

El tema que no funciona, no es por el cursor, ya que para reemplazar otros
caracteres asi como esta funciona correctamente, el problema lo tengo cuando
busco por ejemplo la letra É, si la buscó así como la estoy expresando no la
encuentra, tengo que hacer la búsqueda distinta ?. usando alguna función en
particular ?.

Nancy Galletti 
Dpto. de Sistemas - Cabal C.L. 
TE : 4891-2600 Int.: 2387 / 4891-2654  
galletti_na...@cabal.com.ar 
  

-----Mensaje original-----
De: Maxi Accotto [mailto:maxi.acco...@gmail.com]
Enviado el: Lunes, 05 de Octubre de 2009 12:29
Para: Galletti, Nancy
Asunto: [dbms] RE: [demás] Reemplazo de vocales acentuadas en SQL Server 7

Hola, usa UPDATE sin cursores y la función Replace de SQL para cada vocal

 

 

 

Maximiliano Damian Accotto

Microsoft MVP en SQL Server

http://Blog.Maxiaccotto.com

 

De: dbms@mug.org.ar [mailto:d...@mug.org.ar] En nombre de Galletti, Nancy
Enviado el: lunes, 05 de octubre de 2009 12:23 p.m.
Para: Maxi
Asunto: [dbms] Reemplazo de vocales acentuadas en SQL Server 7

 

Buenas días listeros, una consulta, en un dato de un archivo de texto que
recibo, me vienen vocales acentuadas, Yo estoy efectuando el siguiente
código que ajdunto para reemplazar la misma por la misma letra sin acento,
pero no está funcionando. Este es un ejemplo ya que tengo que reemplazar
todas las vocales acentuadas y lo mismo me pasa con la letra Ñ.

 

Podría alguien darme alguna idea con este tema ?

 

declare iter_usuario_nombre cursor fast_forward for
    select  tarjeta_numero, rtrim(ltrim(usuario_nombre))
    from    ap_tarjetas_cabal24_temporal
    where   usuario_nombre like "%É%"
open iter_usuario_nombre
fetch next from iter_usuario_nombre into @tarjeta_numero, @campo_depura

 

while (@@FETCH_STATUS = 0)
BEGIN
    select @posicion = 1
    select @campo_modificado = 0
    while @posicion <= len(@campo_depura)
    BEGIN
        if charindex(substring(@campo_depura, @posicion, 1),"É") <> 0
        BEGIN
            select @campo_depura = stuff(@campo_depura, @posicion, 1, "E")
            select @campo_modificado = 1
        END

 

        select @posicion = @posicion + 1
    END

 

    if @campo_modificado = 1
        update  ap_tarjetas_cabal24_temporal
        set     usuario_nombre = @campo_depura
        where   tarjeta_numero = @tarjeta_numero

 

    fetch next from iter_usuario_nombre into @tarjeta_numero, @campo_depura
END

 

close iter_usuario_nombre
deallocate iter_usuario_nombre

 

Desde ya muchas gracias a todos.

Nancy Galletti 
Dpto. de Sistemas - Cabal C.L. 
TE : 4891-2600 Int.: 2387 / 4891-2654  
galletti_na...@cabal.com.ar 
  

 

<<image001.jpg>>

Responder a