Longitud máxima en concatenación

04/04/2008 - 20:19 por Eduardo Santos | Informe spam
Estimados todos:

Estoy creando un SP que como resultado me debe arrojar, mediante un select,
una cadena de 369 caracteres de largo.

El tema es que no me muestra más de 255, y no hallo el modo de "estirar" ese
límite.

Alguna idea al respecto?

Agradeciendo de antemano, les saludo cordialmente.

Eduardo Santos

Preguntas similare

Leer las respuestas

#6 Eduardo Santos
04/04/2008 - 22:59 | Informe spam
Estimado Gux:

El problema es que el texto muy largo para mostrar es el resultado del
select... si corro la query como tal no funciona, o al menos así no
funciona. Adjunto el modo en que lo hice. Quizás peco por inexperiencia.

Cordialmente agradecido,

Eduardo Santos

select CONVERT(varchar(400),(tipo_doc_cli+
isnull(nro_doc_cli,'00000000000' ) +
denominacion_cli +space(50-datalength(denominacion_cli)) +
cat_iva+
calle_sum +space(30-datalength( calle_sum))+
isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum))) ,
'@@@@@@') +
isnull(rtrim(piso_sum)+space(5-datalength(( rtrim(piso_sum)))),'@@@@@')
+
isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
,'@@@@@')+
isnull(rtrim(sector_sum)+space(5-datalength((
rtrim(sector_sum)))),'@@@@@') +
isnull(rtrim(torre_sum)+space(5-datalength(rtrim( torre_sum))),'@@@@@') +
isnull(rtrim(manzana_sum)+space(5-datalength((
rtrim(manzana_sum)))),'@@@@@') +
isnull(rtrim(localidad_sum)+space(60-datalength((
rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
pcia_sum /* sacamos este space porque en la tabla estan como corresponde
+ space(2-datalength(ltrim( pcia_sum)))*/ +
cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
frec_facturacion +
tipo_prestacion +
replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
100))))) +rtrim(convert(char,convert(int,iva * 100))) +
'5' +
'0' +
/*Acá hay bolonki, si se reemplaza por una coma, sale bien, sino se come el
resto de los datos a partir de calle_postal*/
'0000000000000000000000' +
'1'+
replicate('0',12-datalength(rtrim(convert(char, cant_con))))
+rtrim(convert(char,cant_con ) )+
'000000' +
calle_postal +space(30-datalength( calle_postal))+
/*modifique en esta rtrim por ltrim, dado que sino corria la columna
siguiente*/
isnull(ltrim(numero_postal )+space(6-datalength(
numero_postal)),'@@@@@@')+
isnull(rtrim(piso_postal)+space(5-datalength(( piso_postal))),'@@@@@')
+
/*modifique en esta rtrim por ltrim, dado que sino corria la columna
siguiente*/
isnull(ltrim(depto_postal)+space(5-datalength(( depto_postal))),'@@@@@')
+
isnull(rtrim(sector_postal)+space(5-datalength((
sector_postal))),'@@@@@') +
isnull(rtrim(torre_postal)+space(5-datalength(( torre_postal))),'@@@@@')
+
isnull(rtrim(manza_postal)+space(5-datalength(( manza_postal))),'@@@@@')
+
(isnull(space(30-datalength((
rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
provin_postal +
/*modifique en esta rtrim por ltrim, dado que sino desaparecian los espacios
al final*/
isnull( ltrim(cod_postal_postal )+replicate(' ',10-datalength(ltrim(
cod_postal_postal))),space(10)))
from #cr_fin

"Gux (MVP)" escribió en el mensaje de
noticias news:
Haga esta prueba, use CONVERT para forzar a que el texto largo se convierta
a
un largo mayo... use algo así:

SELECT . . . CONVERT ( VARCHAR(400), TextoMuyLargoParaMostrar ) . . .

Sustitura el TextoMuyLargoParaMostrar por la expresión suya que tiene 369
caracteres.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

En este momento lo veo en el analizador de consultas simplemente... En
realidad el SP corre desde una aplicación en Power Builder, lo que busco
es
que me genere un reporte que, al ser convertido a archivo de texto, sea
tomado por una aplicación impositiva.

Cordialmente,

Eduardo Santos

"Gux (MVP)" escribió en el mensaje de
noticias news:
Disculpe que insista, pero sigo sin entender dónde muestra el SELECT el
resultado.
Usted lo ejecuta al SELECT desde una aplicación?
Dónde está usted mirando los resultados de la consulta?

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

> No, al ejecutar el select que concatena solamente me muestra 255
> posiciones
> de las 369 que debería arrojar.
>
> Si parto la concatenación en dos columnas sí me muestra la totalidad de
> los
> datos. Adjunto el select en cuestión.
>
> El tema es que si exporto estas dos columnas a un archivo de texto (lo
> que
> necesito como producto final) debo eliminar las comas a efectos de que
> el
> sistema impositivo tome los datos correctamente.
>
> Muchísimas gracias por responder tan pronto!
>
> Cordialmente,
>
> Eduardo Santos
>
> select tipo_doc_cli+
> isnull(nro_doc_cli,'00000000000' ) +
> denominacion_cli +space(50-datalength(denominacion_cli)) +
> cat_iva+
> calle_sum +space(30-datalength( calle_sum))+
> isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum))) ,
> '@@@@@@') +
> isnull(rtrim(piso_sum)+space(5-datalength((
> rtrim(piso_sum)))),'@@@@@')
> +
> isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
> ,'@@@@@')+
> isnull(rtrim(sector_sum)+space(5-datalength((
> rtrim(sector_sum)))),'@@@@@') +
> isnull(rtrim(torre_sum)+space(5-datalength(rtrim(
> torre_sum))),'@@@@@')
> +
> isnull(rtrim(manzana_sum)+space(5-datalength((
> rtrim(manzana_sum)))),'@@@@@') +
> isnull(rtrim(localidad_sum)+space(60-datalength((
> rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
> pcia_sum /* sacamos este space porque en la tabla estan como
> corresponde
> + space(2-datalength(ltrim( pcia_sum)))*/ +
> cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
> frec_facturacion +
> tipo_prestacion +
> replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
> 100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
> replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
> 100))))) +rtrim(convert(char,convert(int,iva * 100))) +
> '5' +
> '0' +
> /*AQUI ESTA EL PROBLEMA, SI CONCATENO A PARTIR DE AQUI "DESAPARECEN" LOS
> DATOS A PARTIR DE calle_postal*/
> '0000000000000000000000' ,
> '1'+
> replicate('0',12-datalength(rtrim(convert(char, cant_con))))
> +rtrim(convert(char,cant_con ) )+
> '000000' +
> calle_postal +space(30-datalength( calle_postal))+
> /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> siguiente*/
> isnull(ltrim(numero_postal )+space(6-datalength(
> numero_postal)),'@@@@@@')+
> isnull(rtrim(piso_postal)+space(5-datalength((
> piso_postal))),'@@@@@')
> +
> /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> siguiente*/
> isnull(ltrim(depto_postal)+space(5-datalength((
> depto_postal))),'@@@@@')
> +
> isnull(rtrim(sector_postal)+space(5-datalength((
> sector_postal))),'@@@@@') +
> isnull(rtrim(torre_postal)+space(5-datalength((
> torre_postal))),'@@@@@')
> +
> isnull(rtrim(manza_postal)+space(5-datalength((
> manza_postal))),'@@@@@')
> +
> (isnull(space(30-datalength((
> rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
> provin_postal +
> /*modifique en esta rtrim por ltrim, dado que sino desaparecian los
> espacios
> al final*/
> isnull( ltrim(cod_postal_postal )+replicate(' ',10-datalength(ltrim(
> cod_postal_postal))),space(10))
> from #cr_fin
>
>
> "Gux (MVP)" escribió en el mensaje de
> noticias news:
> Cuando usted dice que "no le muestra", a qué se refiere, dónde pone los
> caracteres para mostrar, en una variable?
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "Eduardo Santos" wrote:
>
> > Estimados todos:
> >
> > Estoy creando un SP que como resultado me debe arrojar, mediante un
> > select,
> > una cadena de 369 caracteres de largo.
> >
> > El tema es que no me muestra más de 255, y no hallo el modo de
> > "estirar"
> > ese
> > límite.
> >
> > Alguna idea al respecto?
> >
> > Agradeciendo de antemano, les saludo cordialmente.
> >
> > Eduardo Santos
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Gux (MVP)
04/04/2008 - 23:23 | Informe spam
Por favor haga lo siguiente:

1. Configure el analizador de consulta para que muestre el resultado en
formato de texto.

2. Ejecute la SELECT original que usted tenía.

3. Copie/pegue el resultado acá para que podamos verlo.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

Estimado Gux:

El problema es que el texto muy largo para mostrar es el resultado del
select... si corro la query como tal no funciona, o al menos así no
funciona. Adjunto el modo en que lo hice. Quizás peco por inexperiencia.

Cordialmente agradecido,

Eduardo Santos

select CONVERT(varchar(400),(tipo_doc_cli+
isnull(nro_doc_cli,'00000000000' ) +
denominacion_cli +space(50-datalength(denominacion_cli)) +
cat_iva+
calle_sum +space(30-datalength( calle_sum))+
isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum))) ,
'@@@@@@') +
isnull(rtrim(piso_sum)+space(5-datalength(( rtrim(piso_sum)))),'@@@@@')
+
isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
,'@@@@@')+
isnull(rtrim(sector_sum)+space(5-datalength((
rtrim(sector_sum)))),'@@@@@') +
isnull(rtrim(torre_sum)+space(5-datalength(rtrim( torre_sum))),'@@@@@') +
isnull(rtrim(manzana_sum)+space(5-datalength((
rtrim(manzana_sum)))),'@@@@@') +
isnull(rtrim(localidad_sum)+space(60-datalength((
rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
pcia_sum /* sacamos este space porque en la tabla estan como corresponde
+ space(2-datalength(ltrim( pcia_sum)))*/ +
cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
frec_facturacion +
tipo_prestacion +
replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
100))))) +rtrim(convert(char,convert(int,iva * 100))) +
'5' +
'0' +
/*Acá hay bolonki, si se reemplaza por una coma, sale bien, sino se come el
resto de los datos a partir de calle_postal*/
'0000000000000000000000' +
'1'+
replicate('0',12-datalength(rtrim(convert(char, cant_con))))
+rtrim(convert(char,cant_con ) )+
'000000' +
calle_postal +space(30-datalength( calle_postal))+
/*modifique en esta rtrim por ltrim, dado que sino corria la columna
siguiente*/
isnull(ltrim(numero_postal )+space(6-datalength(
numero_postal)),'@@@@@@')+
isnull(rtrim(piso_postal)+space(5-datalength(( piso_postal))),'@@@@@')
+
/*modifique en esta rtrim por ltrim, dado que sino corria la columna
siguiente*/
isnull(ltrim(depto_postal)+space(5-datalength(( depto_postal))),'@@@@@')
+
isnull(rtrim(sector_postal)+space(5-datalength((
sector_postal))),'@@@@@') +
isnull(rtrim(torre_postal)+space(5-datalength(( torre_postal))),'@@@@@')
+
isnull(rtrim(manza_postal)+space(5-datalength(( manza_postal))),'@@@@@')
+
(isnull(space(30-datalength((
rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
provin_postal +
/*modifique en esta rtrim por ltrim, dado que sino desaparecian los espacios
al final*/
isnull( ltrim(cod_postal_postal )+replicate(' ',10-datalength(ltrim(
cod_postal_postal))),space(10)))
from #cr_fin

"Gux (MVP)" escribió en el mensaje de
noticias news:
Haga esta prueba, use CONVERT para forzar a que el texto largo se convierta
a
un largo mayo... use algo así:

SELECT . . . CONVERT ( VARCHAR(400), TextoMuyLargoParaMostrar ) . . .

Sustitura el TextoMuyLargoParaMostrar por la expresión suya que tiene 369
caracteres.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

> En este momento lo veo en el analizador de consultas simplemente... En
> realidad el SP corre desde una aplicación en Power Builder, lo que busco
> es
> que me genere un reporte que, al ser convertido a archivo de texto, sea
> tomado por una aplicación impositiva.
>
> Cordialmente,
>
> Eduardo Santos
>
> "Gux (MVP)" escribió en el mensaje de
> noticias news:
> Disculpe que insista, pero sigo sin entender dónde muestra el SELECT el
> resultado.
> Usted lo ejecuta al SELECT desde una aplicación?
> Dónde está usted mirando los resultados de la consulta?
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "Eduardo Santos" wrote:
>
> > No, al ejecutar el select que concatena solamente me muestra 255
> > posiciones
> > de las 369 que debería arrojar.
> >
> > Si parto la concatenación en dos columnas sí me muestra la totalidad de
> > los
> > datos. Adjunto el select en cuestión.
> >
> > El tema es que si exporto estas dos columnas a un archivo de texto (lo
> > que
> > necesito como producto final) debo eliminar las comas a efectos de que
> > el
> > sistema impositivo tome los datos correctamente.
> >
> > Muchísimas gracias por responder tan pronto!
> >
> > Cordialmente,
> >
> > Eduardo Santos
> >
> > select tipo_doc_cli+
> > isnull(nro_doc_cli,'00000000000' ) +
> > denominacion_cli +space(50-datalength(denominacion_cli)) +
> > cat_iva+
> > calle_sum +space(30-datalength( calle_sum))+
> > isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum))) ,
> > '@@@@@@') +
> > isnull(rtrim(piso_sum)+space(5-datalength((
> > rtrim(piso_sum)))),'@@@@@')
> > +
> > isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
> > ,'@@@@@')+
> > isnull(rtrim(sector_sum)+space(5-datalength((
> > rtrim(sector_sum)))),'@@@@@') +
> > isnull(rtrim(torre_sum)+space(5-datalength(rtrim(
> > torre_sum))),'@@@@@')
> > +
> > isnull(rtrim(manzana_sum)+space(5-datalength((
> > rtrim(manzana_sum)))),'@@@@@') +
> > isnull(rtrim(localidad_sum)+space(60-datalength((
> > rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
> > pcia_sum /* sacamos este space porque en la tabla estan como
> > corresponde
> > + space(2-datalength(ltrim( pcia_sum)))*/ +
> > cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
> > frec_facturacion +
> > tipo_prestacion +
> > replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
> > 100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
> > replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
> > 100))))) +rtrim(convert(char,convert(int,iva * 100))) +
> > '5' +
> > '0' +
> > /*AQUI ESTA EL PROBLEMA, SI CONCATENO A PARTIR DE AQUI "DESAPARECEN" LOS
> > DATOS A PARTIR DE calle_postal*/
> > '0000000000000000000000' ,
> > '1'+
> > replicate('0',12-datalength(rtrim(convert(char, cant_con))))
> > +rtrim(convert(char,cant_con ) )+
> > '000000' +
> > calle_postal +space(30-datalength( calle_postal))+
> > /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> > siguiente*/
> > isnull(ltrim(numero_postal )+space(6-datalength(
> > numero_postal)),'@@@@@@')+
> > isnull(rtrim(piso_postal)+space(5-datalength((
> > piso_postal))),'@@@@@')
> > +
> > /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> > siguiente*/
> > isnull(ltrim(depto_postal)+space(5-datalength((
> > depto_postal))),'@@@@@')
> > +
> > isnull(rtrim(sector_postal)+space(5-datalength((
> > sector_postal))),'@@@@@') +
> > isnull(rtrim(torre_postal)+space(5-datalength((
> > torre_postal))),'@@@@@')
> > +
> > isnull(rtrim(manza_postal)+space(5-datalength((
> > manza_postal))),'@@@@@')
> > +
> > (isnull(space(30-datalength((
> > rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
> > provin_postal +
> > /*modifique en esta rtrim por ltrim, dado que sino desaparecian los
> > espacios
> > al final*/
> > isnull( ltrim(cod_postal_postal )+replicate(' ',10-datalength(ltrim(
> > cod_postal_postal))),space(10))
> > from #cr_fin
> >
> >
> > "Gux (MVP)" escribió en el mensaje de
> > noticias news:
> > Cuando usted dice que "no le muestra", a qué se refiere, dónde pone los
> > caracteres para mostrar, en una variable?
> >
> > Gustavo Larriera, Microsoft MVP
> > https://mvp.support.microsoft.com/profile/gux
> > Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
> >
> >
> >
> > "Eduardo Santos" wrote:
> >
> > > Estimados todos:
> > >
> > > Estoy creando un SP que como resultado me debe arrojar, mediante un
> > > select,
> > > una cadena de 369 caracteres de largo.
> > >
> > > El tema es que no me muestra más de 255, y no hallo el modo de
> > > "estirar"
> > > ese
> > > límite.
> > >
> > > Alguna idea al respecto?
> > >
> > > Agradeciendo de antemano, les saludo cordialmente.
> > >
> > > Eduardo Santos
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Eduardo Santos
04/04/2008 - 23:37 | Informe spam
Curiosamente, si pido los resultados como texto me arroja un error... y los
datos incompletos...
Copio absolutamente todo para mayor claridad.

Advertencia: valor NULL eliminado por el agregado u otra operación SET.

(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(15 filas afectadas)


(15 filas afectadas)


(15 filas afectadas)


(0 filas afectadas)


(15 filas afectadas)


-
8030583482667QUETRIHUE S.A. 1AVDA.SAN
MARTIN 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000001068657000000202475500000000000000000000000100000004
8030500012990MINISTERIO DE EDUCACION DEL CHUBUT 1AVDA.CORDOBA
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000526374000000070817500000000000000000000000100000001
8030639453975TELEFONICA DE ARGENTINA 1AVDA.CORDOBA
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000344556000000063966500000000000000000000000100000000
8030500012990BANCO PCIA. DELEG. EL MAITEN 125 DE MAYO
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000306024000000056348500000000000000000000000100000001
8030583482667QUETRIHUE S.A. 1AVDA.SAN
MARTIN 1317 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000336954000000063343500000000000000000000000100000001
8030583482667QUETRIHUE S.A. 1AVDA.SAN
MARTIN 1317 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000576725000000108856500000000000000000000000100000002
8030500012990MINISTERIO DE EDUCACION DEL CHUBUT 1GRAL.GÜEMES
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000851587000000130232500000000000000000000000100000002
8030500012990HOSPITAL SUBZONAL EL MAITEN 1PATAGONIA
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000831179000000126675500000000000000000000000100000001
8020105052953COCIOLO JUAN MANUEL 122 DE
DICIEMBRE 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000393651000000066630500000000000000000000000100000000
8030500012990MINISTERIO DE EDUCACION DEL CHUBUT 1ALDEA BUENOS
AIRES CHICO 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000301281000000045667500000000000000000000000100000000
8030504536706CONTRERAS HNOS.S.A.I.C.I.F.A.G.M. 1RUTA
NACIONAL Nº 40 1 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000733813000000139243500000000000000000000000100000002
8030692235092ORTEGA ANTONIO 1AREA RURAL
1 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000659854000000126121500000000000000000000000100000002
8030639453975TELEFONICA DE ARGENTINA 1AREA RURAL
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000425024000000080245500000000000000000000000100000001
8030527582926DIR.GRAL. DE SERVI. PUBLICOS 1AREA RURAL
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000320058000000049189500000000000000000000000100000002
8030500012990UNID.EJECUT.PROV.DE LA IND.AGR. Y GAN. 1AVDA.SAN
MARTIN 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000002019340000000311225500000000000000000000000100000001

(15 filas afectadas)



"Gux (MVP)" escribió en el mensaje de
noticias news:
Por favor haga lo siguiente:

1. Configure el analizador de consulta para que muestre el resultado en
formato de texto.

2. Ejecute la SELECT original que usted tenía.

3. Copie/pegue el resultado acá para que podamos verlo.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

Estimado Gux:

El problema es que el texto muy largo para mostrar es el resultado del
select... si corro la query como tal no funciona, o al menos así no
funciona. Adjunto el modo en que lo hice. Quizás peco por inexperiencia.

Cordialmente agradecido,

Eduardo Santos

select CONVERT(varchar(400),(tipo_doc_cli+
isnull(nro_doc_cli,'00000000000' ) +
denominacion_cli +space(50-datalength(denominacion_cli)) +
cat_iva+
calle_sum +space(30-datalength( calle_sum))+
isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum))) ,
'@@@@@@') +
isnull(rtrim(piso_sum)+space(5-datalength(( rtrim(piso_sum)))),'@@@@@')
+
isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
,'@@@@@')+
isnull(rtrim(sector_sum)+space(5-datalength((
rtrim(sector_sum)))),'@@@@@') +
isnull(rtrim(torre_sum)+space(5-datalength(rtrim( torre_sum))),'@@@@@')
+
isnull(rtrim(manzana_sum)+space(5-datalength((
rtrim(manzana_sum)))),'@@@@@') +
isnull(rtrim(localidad_sum)+space(60-datalength((
rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
pcia_sum /* sacamos este space porque en la tabla estan como
corresponde
+ space(2-datalength(ltrim( pcia_sum)))*/ +
cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
frec_facturacion +
tipo_prestacion +
replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
100))))) +rtrim(convert(char,convert(int,iva * 100))) +
'5' +
'0' +
/*Acá hay bolonki, si se reemplaza por una coma, sale bien, sino se come
el
resto de los datos a partir de calle_postal*/
'0000000000000000000000' +
'1'+
replicate('0',12-datalength(rtrim(convert(char, cant_con))))
+rtrim(convert(char,cant_con ) )+
'000000' +
calle_postal +space(30-datalength( calle_postal))+
/*modifique en esta rtrim por ltrim, dado que sino corria la columna
siguiente*/
isnull(ltrim(numero_postal )+space(6-datalength(
numero_postal)),'@@@@@@')+
isnull(rtrim(piso_postal)+space(5-datalength((
piso_postal))),'@@@@@')
+
/*modifique en esta rtrim por ltrim, dado que sino corria la columna
siguiente*/
isnull(ltrim(depto_postal)+space(5-datalength((
depto_postal))),'@@@@@')
+
isnull(rtrim(sector_postal)+space(5-datalength((
sector_postal))),'@@@@@') +
isnull(rtrim(torre_postal)+space(5-datalength((
torre_postal))),'@@@@@')
+
isnull(rtrim(manza_postal)+space(5-datalength((
manza_postal))),'@@@@@')
+
(isnull(space(30-datalength((
rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
provin_postal +
/*modifique en esta rtrim por ltrim, dado que sino desaparecian los
espacios
al final*/
isnull( ltrim(cod_postal_postal )+replicate(' ',10-datalength(ltrim(
cod_postal_postal))),space(10)))
from #cr_fin

"Gux (MVP)" escribió en el mensaje de
noticias news:
Haga esta prueba, use CONVERT para forzar a que el texto largo se
convierta
a
un largo mayo... use algo así:

SELECT . . . CONVERT ( VARCHAR(400), TextoMuyLargoParaMostrar ) . . .

Sustitura el TextoMuyLargoParaMostrar por la expresión suya que tiene 369
caracteres.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

> En este momento lo veo en el analizador de consultas simplemente... En
> realidad el SP corre desde una aplicación en Power Builder, lo que busco
> es
> que me genere un reporte que, al ser convertido a archivo de texto, sea
> tomado por una aplicación impositiva.
>
> Cordialmente,
>
> Eduardo Santos
>
> "Gux (MVP)" escribió en el mensaje de
> noticias news:
> Disculpe que insista, pero sigo sin entender dónde muestra el SELECT el
> resultado.
> Usted lo ejecuta al SELECT desde una aplicación?
> Dónde está usted mirando los resultados de la consulta?
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "Eduardo Santos" wrote:
>
> > No, al ejecutar el select que concatena solamente me muestra 255
> > posiciones
> > de las 369 que debería arrojar.
> >
> > Si parto la concatenación en dos columnas sí me muestra la totalidad
> > de
> > los
> > datos. Adjunto el select en cuestión.
> >
> > El tema es que si exporto estas dos columnas a un archivo de texto (lo
> > que
> > necesito como producto final) debo eliminar las comas a efectos de que
> > el
> > sistema impositivo tome los datos correctamente.
> >
> > Muchísimas gracias por responder tan pronto!
> >
> > Cordialmente,
> >
> > Eduardo Santos
> >
> > select tipo_doc_cli+
> > isnull(nro_doc_cli,'00000000000' ) +
> > denominacion_cli +space(50-datalength(denominacion_cli)) +
> > cat_iva+
> > calle_sum +space(30-datalength( calle_sum))+
> > isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum)))
> > ,
> > '@@@@@@') +
> > isnull(rtrim(piso_sum)+space(5-datalength((
> > rtrim(piso_sum)))),'@@@@@')
> > +
> > isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
> > ,'@@@@@')+
> > isnull(rtrim(sector_sum)+space(5-datalength((
> > rtrim(sector_sum)))),'@@@@@') +
> > isnull(rtrim(torre_sum)+space(5-datalength(rtrim(
> > torre_sum))),'@@@@@')
> > +
> > isnull(rtrim(manzana_sum)+space(5-datalength((
> > rtrim(manzana_sum)))),'@@@@@') +
> > isnull(rtrim(localidad_sum)+space(60-datalength((
> > rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
> > pcia_sum /* sacamos este space porque en la tabla estan como
> > corresponde
> > + space(2-datalength(ltrim( pcia_sum)))*/ +
> > cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
> > frec_facturacion +
> > tipo_prestacion +
> > replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
> > 100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
> > replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
> > 100))))) +rtrim(convert(char,convert(int,iva * 100))) +
> > '5' +
> > '0' +
> > /*AQUI ESTA EL PROBLEMA, SI CONCATENO A PARTIR DE AQUI "DESAPARECEN"
> > LOS
> > DATOS A PARTIR DE calle_postal*/
> > '0000000000000000000000' ,
> > '1'+
> > replicate('0',12-datalength(rtrim(convert(char, cant_con))))
> > +rtrim(convert(char,cant_con ) )+
> > '000000' +
> > calle_postal +space(30-datalength( calle_postal))+
> > /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> > siguiente*/
> > isnull(ltrim(numero_postal )+space(6-datalength(
> > numero_postal)),'@@@@@@')+
> > isnull(rtrim(piso_postal)+space(5-datalength((
> > piso_postal))),'@@@@@')
> > +
> > /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> > siguiente*/
> > isnull(ltrim(depto_postal)+space(5-datalength((
> > depto_postal))),'@@@@@')
> > +
> > isnull(rtrim(sector_postal)+space(5-datalength((
> > sector_postal))),'@@@@@') +
> > isnull(rtrim(torre_postal)+space(5-datalength((
> > torre_postal))),'@@@@@')
> > +
> > isnull(rtrim(manza_postal)+space(5-datalength((
> > manza_postal))),'@@@@@')
> > +
> > (isnull(space(30-datalength((
> > rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
> > provin_postal +
> > /*modifique en esta rtrim por ltrim, dado que sino desaparecian los
> > espacios
> > al final*/
> > isnull( ltrim(cod_postal_postal )+replicate('
> > ',10-datalength(ltrim(
> > cod_postal_postal))),space(10))
> > from #cr_fin
> >
> >
> > "Gux (MVP)" escribió en el mensaje
> > de
> > noticias news:
> > Cuando usted dice que "no le muestra", a qué se refiere, dónde pone
> > los
> > caracteres para mostrar, en una variable?
> >
> > Gustavo Larriera, Microsoft MVP
> > https://mvp.support.microsoft.com/profile/gux
> > Este mensaje se proporciona tal como es, sin garantías de ninguna
> > clase.
> >
> >
> >
> > "Eduardo Santos" wrote:
> >
> > > Estimados todos:
> > >
> > > Estoy creando un SP que como resultado me debe arrojar, mediante un
> > > select,
> > > una cadena de 369 caracteres de largo.
> > >
> > > El tema es que no me muestra más de 255, y no hallo el modo de
> > > "estirar"
> > > ese
> > > límite.
> > >
> > > Alguna idea al respecto?
> > >
> > > Agradeciendo de antemano, les saludo cordialmente.
> > >
> > > Eduardo Santos
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#9 Gux (MVP)
05/04/2008 - 01:04 | Informe spam
Realmente no detecto que haya algún problema en SQL Server, la consulta
parece estar correcta.

Tal vez su problema esté en el lugar donde usted va a recibir el texto.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

Curiosamente, si pido los resultados como texto me arroja un error... y los
datos incompletos...
Copio absolutamente todo para mayor claridad.

Advertencia: valor NULL eliminado por el agregado u otra operación SET.

(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(1 filas afectadas)


(15 filas afectadas)


(15 filas afectadas)


(15 filas afectadas)


(0 filas afectadas)


(15 filas afectadas)


-
8030583482667QUETRIHUE S.A. 1AVDA.SAN
MARTIN 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000001068657000000202475500000000000000000000000100000004
8030500012990MINISTERIO DE EDUCACION DEL CHUBUT 1AVDA.CORDOBA
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000526374000000070817500000000000000000000000100000001
8030639453975TELEFONICA DE ARGENTINA 1AVDA.CORDOBA
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000344556000000063966500000000000000000000000100000000
8030500012990BANCO PCIA. DELEG. EL MAITEN 125 DE MAYO
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000306024000000056348500000000000000000000000100000001
8030583482667QUETRIHUE S.A. 1AVDA.SAN
MARTIN 1317 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000336954000000063343500000000000000000000000100000001
8030583482667QUETRIHUE S.A. 1AVDA.SAN
MARTIN 1317 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000576725000000108856500000000000000000000000100000002
8030500012990MINISTERIO DE EDUCACION DEL CHUBUT 1GRAL.GÜEMES
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000851587000000130232500000000000000000000000100000002
8030500012990HOSPITAL SUBZONAL EL MAITEN 1PATAGONIA
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000831179000000126675500000000000000000000000100000001
8020105052953COCIOLO JUAN MANUEL 122 DE
DICIEMBRE 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000393651000000066630500000000000000000000000100000000
8030500012990MINISTERIO DE EDUCACION DEL CHUBUT 1ALDEA BUENOS
AIRES CHICO 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000301281000000045667500000000000000000000000100000000
8030504536706CONTRERAS HNOS.S.A.I.C.I.F.A.G.M. 1RUTA
NACIONAL Nº 40 1 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000733813000000139243500000000000000000000000100000002
8030692235092ORTEGA ANTONIO 1AREA RURAL
1 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000659854000000126121500000000000000000000000100000002
8030639453975TELEFONICA DE ARGENTINA 1AREA RURAL
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000425024000000080245500000000000000000000000100000001
8030527582926DIR.GRAL. DE SERVI. PUBLICOS 1AREA RURAL
0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000000320058000000049189500000000000000000000000100000002
8030500012990UNID.EJECUT.PROV.DE LA IND.AGR. Y GAN. 1AVDA.SAN
MARTIN 0 @@@@@@@@@@@@@@@@@@@@@@@@@El Maiten
019210 11000002019340000000311225500000000000000000000000100000001

(15 filas afectadas)



"Gux (MVP)" escribió en el mensaje de
noticias news:
Por favor haga lo siguiente:

1. Configure el analizador de consulta para que muestre el resultado en
formato de texto.

2. Ejecute la SELECT original que usted tenía.

3. Copie/pegue el resultado acá para que podamos verlo.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Eduardo Santos" wrote:

> Estimado Gux:
>
> El problema es que el texto muy largo para mostrar es el resultado del
> select... si corro la query como tal no funciona, o al menos así no
> funciona. Adjunto el modo en que lo hice. Quizás peco por inexperiencia.
>
> Cordialmente agradecido,
>
> Eduardo Santos
>
> select CONVERT(varchar(400),(tipo_doc_cli+
> isnull(nro_doc_cli,'00000000000' ) +
> denominacion_cli +space(50-datalength(denominacion_cli)) +
> cat_iva+
> calle_sum +space(30-datalength( calle_sum))+
> isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum))) ,
> '@@@@@@') +
> isnull(rtrim(piso_sum)+space(5-datalength(( rtrim(piso_sum)))),'@@@@@')
> +
> isnull(rtrim(depto_sum)+space(5-datalength(( rtrim(depto_sum))))
> ,'@@@@@')+
> isnull(rtrim(sector_sum)+space(5-datalength((
> rtrim(sector_sum)))),'@@@@@') +
> isnull(rtrim(torre_sum)+space(5-datalength(rtrim( torre_sum))),'@@@@@')
> +
> isnull(rtrim(manzana_sum)+space(5-datalength((
> rtrim(manzana_sum)))),'@@@@@') +
> isnull(rtrim(localidad_sum)+space(60-datalength((
> rtrim(localidad_sum)))),'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@')+
> pcia_sum /* sacamos este space porque en la tabla estan como
> corresponde
> + space(2-datalength(ltrim( pcia_sum)))*/ +
> cod_posta_sum + space(10-datalength(ltrim( cod_posta_sum))) +
> frec_facturacion +
> tipo_prestacion +
> replicate('0',12-datalength(rtrim(convert(char, convert(int,total *
> 100))))) +rtrim(convert(char,convert(int,total * 100) ) )+
> replicate('0',12-datalength(rtrim(convert(char, convert(int,iva *
> 100))))) +rtrim(convert(char,convert(int,iva * 100))) +
> '5' +
> '0' +
> /*Acá hay bolonki, si se reemplaza por una coma, sale bien, sino se come
> el
> resto de los datos a partir de calle_postal*/
> '0000000000000000000000' +
> '1'+
> replicate('0',12-datalength(rtrim(convert(char, cant_con))))
> +rtrim(convert(char,cant_con ) )+
> '000000' +
> calle_postal +space(30-datalength( calle_postal))+
> /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> siguiente*/
> isnull(ltrim(numero_postal )+space(6-datalength(
> numero_postal)),'@@@@@@')+
> isnull(rtrim(piso_postal)+space(5-datalength((
> piso_postal))),'@@@@@')
> +
> /*modifique en esta rtrim por ltrim, dado que sino corria la columna
> siguiente*/
> isnull(ltrim(depto_postal)+space(5-datalength((
> depto_postal))),'@@@@@')
> +
> isnull(rtrim(sector_postal)+space(5-datalength((
> sector_postal))),'@@@@@') +
> isnull(rtrim(torre_postal)+space(5-datalength((
> torre_postal))),'@@@@@')
> +
> isnull(rtrim(manza_postal)+space(5-datalength((
> manza_postal))),'@@@@@')
> +
> (isnull(space(30-datalength((
> rtrim(locali_postal))))+rtrim(locali_postal),space(30)))+
> provin_postal +
> /*modifique en esta rtrim por ltrim, dado que sino desaparecian los
> espacios
> al final*/
> isnull( ltrim(cod_postal_postal )+replicate(' ',10-datalength(ltrim(
> cod_postal_postal))),space(10)))
> from #cr_fin
>
> "Gux (MVP)" escribió en el mensaje de
> noticias news:
> Haga esta prueba, use CONVERT para forzar a que el texto largo se
> convierta
> a
> un largo mayo... use algo así:
>
> SELECT . . . CONVERT ( VARCHAR(400), TextoMuyLargoParaMostrar ) . . .
>
> Sustitura el TextoMuyLargoParaMostrar por la expresión suya que tiene 369
> caracteres.
>
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
>
>
>
> "Eduardo Santos" wrote:
>
> > En este momento lo veo en el analizador de consultas simplemente... En
> > realidad el SP corre desde una aplicación en Power Builder, lo que busco
> > es
> > que me genere un reporte que, al ser convertido a archivo de texto, sea
> > tomado por una aplicación impositiva.
> >
> > Cordialmente,
> >
> > Eduardo Santos
> >
> > "Gux (MVP)" escribió en el mensaje de
> > noticias news:
> > Disculpe que insista, pero sigo sin entender dónde muestra el SELECT el
> > resultado.
> > Usted lo ejecuta al SELECT desde una aplicación?
> > Dónde está usted mirando los resultados de la consulta?
> >
> > Gustavo Larriera, Microsoft MVP
> > https://mvp.support.microsoft.com/profile/gux
> > Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
> >
> >
> >
> > "Eduardo Santos" wrote:
> >
> > > No, al ejecutar el select que concatena solamente me muestra 255
> > > posiciones
> > > de las 369 que debería arrojar.
> > >
> > > Si parto la concatenación en dos columnas sí me muestra la totalidad
> > > de
> > > los
> > > datos. Adjunto el select en cuestión.
> > >
> > > El tema es que si exporto estas dos columnas a un archivo de texto (lo
> > > que
> > > necesito como producto final) debo eliminar las comas a efectos de que
> > > el
> > > sistema impositivo tome los datos correctamente.
> > >
> > > Muchísimas gracias por responder tan pronto!
> > >
> > > Cordialmente,
> > >
> > > Eduardo Santos
> > >
> > > select tipo_doc_cli+
> > > isnull(nro_doc_cli,'00000000000' ) +
> > > denominacion_cli +space(50-datalength(denominacion_cli)) +
> > > cat_iva+
> > > calle_sum +space(30-datalength( calle_sum))+
> > > isnull( rtrim(puerta_sum)+space(6-datalength( rtrim(puerta_sum)))
> > > ,
> > > '@@@@@@') +
> > > isnull(rtrim(piso_sum)+space(5-datalength((
> > > rtrim(piso_sum)))),'@@@@@')
Respuesta Responder a este mensaje
#10 Alejandro Mesa
05/04/2008 - 02:34 | Informe spam
Eduardo Santos,

Cual version de sql server usas?

Por la respuesta dada a Gustavo, que usas el QA, asumo que estas usando SS
2000. Chequea el valor que estas usando para largo de cadena de salida.

Tools / Options menu, move to the results tab, and adjust the 'Maximum
characters per column' field.

Tools - Options - results tab

ajusta el numero para "maximo numero de caracteres por columna". El maximo
puede ser 8K - 8192


AMB


"Eduardo Santos" wrote:

Estimados todos:

Estoy creando un SP que como resultado me debe arrojar, mediante un select,
una cadena de 369 caracteres de largo.

El tema es que no me muestra más de 255, y no hallo el modo de "estirar" ese
límite.

Alguna idea al respecto?

Agradeciendo de antemano, les saludo cordialmente.

Eduardo Santos


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida