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

#1 Gux (MVP)
04/04/2008 - 20:31 | Informe spam
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
#2 Eduardo Santos
04/04/2008 - 20:37 | Informe spam
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
#3 Gux (MVP)
04/04/2008 - 20:48 | Informe spam
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
#4 Eduardo Santos
04/04/2008 - 20:53 | Informe spam
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
#5 Gux (MVP)
04/04/2008 - 21:13 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida