Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Obtención de columna muy larga CAST no cumple petición

Estas en el tema de Obtención de columna muy larga CAST no cumple petición en el foro de Mysql en Foros del Web. Buenas noches maestros. La problematica que se me presenta es la siguiente: realizo una consulta en la cual una de las columnas es muy larga, ...
  #1 (permalink)  
Antiguo 21/08/2014, 00:00
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Obtención de columna muy larga CAST no cumple petición

Buenas noches maestros.

La problematica que se me presenta es la siguiente: realizo una consulta en la cual una de las columnas es muy larga, y en base a eso no puedo obtener todos los datos que necesito, eh utilizado el cast pero no resulta, pues me corta la información.

Esta es la consulta sql que genere

Código SQL:
Ver original
  1. SELECT tablaAsignacion.*, rutaZona.nombre, rutaZona.distancia, tablaPuntos.puntos FROM
  2.     (
  3.         SELECT group_concat(id) AS asignaciones, idRuta, group_concat(idGps) AS vehiculos,
  4.         reversible, DATE(salidaEsperada) AS salida FROM asignacionRuta WHERE idGps IN(SELECT
  5.         idGps FROM ligaUnidad WHERE idVehiculo IN(2070,2071,1748,1953,1750,1751,1752,1754,1753,
  6.         1821,1936,1822,1823,1939,1930,1938,1937,1941,1946,1947,2066,1949,1954,1951,1969,1952,2072,
  7.         1985,1998,1997,1984,2036,2040,2039,2035,2085,2560) AND arbolOrganizacion IN(SELECT nombre
  8.         FROM empresas WHERE id='951') AND activo= '1') AND activo= '1'
  9.         AND salidaEsperada <= NOW() GROUP BY idRuta, reversible ORDER BY idRuta
  10.     ) AS tablaAsignacion
  11. LEFT OUTER JOIN
  12.     rutaZona ON rutaZona.id=tablaAsignacion.idRuta
  13. LEFT OUTER JOIN
  14.     (
  15.         SELECT
  16.         CAST(REPLACE(group_concat(concat(descripcion,'[!!]', distanciaAcumulada, '[!!]', tipo)), ',', '|')  AS CHAR(1000000)
  17.                CHARACTER SET utf8) puntos, idRutaZona FROM coordenadas WHERE tipo<>'PUNTO' GROUP BY idRutaZona
  18.     ) AS tablaPuntos ON tablaPuntos.idRutaZona=tablaAsignacion.idRuta

El problema antes mencionado se presenta en esta parte de la sentencia, ya que necesito que la columna pueda soportar una longitud mayor a 5000 caracteres y no lo eh podido conseguir .

Código SQL:
Ver original
  1. CAST(REPLACE(group_concat(concat(descripcion,'[!!]', distanciaAcumulada, '[!!]', tipo)), ',', '|')  AS CHAR(1000000)
  2. CHARACTER SET utf8) puntos

Espero alguien pueda ayudarme, de antemano les agradezco su atención.
Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #2 (permalink)  
Antiguo 21/08/2014, 08:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Obtención de columna muy larga CAST no cumple petición

Por lo pronto, un tipo de dato CHAR sólo podría tener hasta 255 caracteres, por lo que esa conversión resulta al menos problemática...
Además, esás planteando un CHAR de 1.000.000 de caracteres, que correspondería en realidad a un LONGTEXT, por lo que es imposible que esa consulta funcione, además de no tener mucho sentido...
Me parece que para poder hacer lo que quieres deberás plantearte otra estrategia, pero como realmente no sabemos en qué consiste ese dato, cómo lo tienes y qué trabsformaciones intentas lograr, no hay mucho que podeamos hacer.
Usualmente, cuando alguien pregunta por cosas de características de las que describes, tendemos a sospechar que tienen un mal modelo de datos, datos sucios, o desnormalizados...

¿Podrías explicarnos en qué consiste ese dato a obtener, cómo son los datos de origen en las tablas, y cuál el resultado a lograr?
Así al menos entenderíamos y podríamos sugerirte otro camino...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: cast, columna, cumple, join, larga, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:08.