Acentos extraños en un archivo texto sql

Han de disculpar el gorro que les ponga, pero tengo el siguiente problema
Cree por medio de una consulta sql un archivo texto, el cual se crear mediante la instrucción:
exec master..xp_cmdshell @Script, no_output
Ya con todo el código anterior, que si funciona, y en si si me genera el archivo texto que necesito.
El problema es que en el contenido de la tabla esta información con acentos, ok al mandarla traer me la trae con acentos esta bien, incluso la muestro en la pantalla mediante la instrucción
print @Script y me la muestra con acentos como debe de ser.
Pero al momento de generar el archivo texto, al abrirlo me muestra en vez de acentos caracteres raros como por ejemplo:
San Pedro Garza Garc¡a|estado= Nuevo Le¢n|pais= M,xico|codigoPostal= 66215|
En vez de que diga: San Pedro Garza García, Nuevo León México osea lo mismo pero con acentos.
Ya hice muchas cosas y no doy pie con bola, en donde este el problema por favor ayúdenme me siento super estresado, ya revise la configuración de la maquina, utilice un replace para sustituir los acentos por el carácter CHAR(código) que le corresponde al acento y no funciona, ya cree una tabla externa para guardar los resultados y que después utilizar las instrucciones
select @Script = 'osql -U sa -P -S 172.16.2.3 -Q"select leyenda from Tbl_PasaArchivo" -o"c:\FacturaNum4.txt" -w500'
execute master.. Xp_cmdshell 'Bcp "exec Sp_sel_ciiu" queryout "C:\Formatos\ciiu. Txt" -c -Usa -PBankVisioN -SEA '
exec master.. Xp_cmdshell @Script
EXEC master .. Xp_cmdshell 'BCP "select leyenda from DYNAMICS.. Tbl_PasaArchivo" queryout "c:\FacturaNum4.txt"-c -U sa -P ikusierpgp72 '
Y ni así, (aclarando que me marca error que si no es por el usuario, es por el permiso y si no es por el permiso es por el servidor y si no es por el servidor es por otra cosa, que ya ni se que sea) el tiempo se me acaba y no encuentro solución alguna

1 respuesta

Respuesta
1
No sé que versión de SQL Server utilizas.
Puede ser de dos sitios:
Uno del comando OSQL, que los datos que devuelve son unicode y los que tienes son ANSI.
Otro del comando BCP, quizás la opción -c para la cadena de caracteres no sea la más adecuada y debas utilizar -n o -w.
Me cuentas que tal te fue!
Gracias lo voy a probar, pero aun así, ya hice muchas variantes y no he tenido resultados buenos, sino lo mismo con caracteres extraños
la version de SQL es SQL Server 2005
PD. Ya le cambie el idioma al motor de la base de datos y aun así genera los mismos caracteres extraños en vez de los acentos.
Muchas gracias, espero una pronta respuesta a esta inquietud
¿Has probado a utilizar SQLCMD en lugar de OSQL?
Sería interesante que comprobaras en que momento te hace el cambio en las vocales acentuadas, si después del OSQL o después del BCP.
Me cuentas!
Perdón, pero ignoro ese tipo de nomenclatura que me mencionas, podrías darme un ejemplo más especifico para probarlo y si es posible en que sql me estas mencionando esto, porque intente buscarlo en internet y no encontré nada.
Por favor echame la mano en esto que ya estoy desesperado, los archivos que pretendo generar son para facturación electrónica.
Gracias y que tengas un gran día, espero respuesta.
Te mando una referencia al respecto:
http://msdn.microsoft.com/es-es/library/ms162773.aspx
Revise la página, pero no quedo muy claro como es que se trabaja con esta instrucción se pone en un store procedure o en un query de sql server es 2005 verdad, por lo mismo te preguntaba si me podrías hacer el favor de enviarme un ejemplo de como seria esto, para poder generar el archivo texto.
Mil gracias en forma anticipada,...
sqlcmd -S <ComputerName>\<InstanceName> -i <MyScript.sql> -o <MyOutput.rpt>
Se utiliza igual que la herramienta de osql.
Una pregunta, ¿has barajado la posibilidad de utilizar el SQL Server Integration Services? Quizás con esta herramienta puedas controlar mejor esos caracteres acentuados que te traen de cabeza, y las transformaciones que haces en tus columnas.
Te lo recomiendo, primero porque con Integration Services no tienes que dejar habilitado el xp_cmdshell, que suele ser un punto débil en un servidor de SQL, de hecho por defecto viene deshabilitado. Y segundo porque Integration Services te aporta flexibilidad.
Haces tus paquetes, los puedes agregar en un control de código fuente, de modo que puedes llevar un versionado de los mismos, y tienes muchas potencia con una mayor protección de tus datos, puedes crear trabajos periódicos que invoquen a estos paquetes.
Cuéntame que tal te fue con el sqlcmd y si puedes pensar en utilizar integration services para poderte dar unas nociones de cómo puedes trabajar con él.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas