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

Problema al declarar Variable de Tipo String en Stored Procedure

Estas en el tema de Problema al declarar Variable de Tipo String en Stored Procedure en el foro de Mysql en Foros del Web. Hola Amigos de foros del web, y un Especial saludo a Gnzsoloyo (Moderador) y a leonardo_josue (Colaborador) , por su gran ayuda en todas mis ...
  #1 (permalink)  
Antiguo 19/02/2013, 07:23
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Problema al declarar Variable de Tipo String en Stored Procedure

Hola Amigos de foros del web, y un Especial saludo a Gnzsoloyo (Moderador) y a leonardo_josue (Colaborador), por su gran ayuda en todas mis consultas, hoy tengo una pregunta con respecto a los tipos de Datos que soporta los campos String de una base de Datos Mysql.
Estoy haciendo un stored Procedure que me devuelve una cadena String la cual contiene una serie de registros que ingresare a una tabla temporal con una sentencia preparada, la cuestión es que para generar ese String, lo hago con un ciclo While.
Observando el String que me devuelve el ciclo, solo me muestra hasta 5424 caracteres contando espacios en blanco, si se pasa de hay ya me muestra como resultado NULL, me pusé a mirar en la documentación de Mysql hasta que capacidad de caracteres me permite almacenar los tipos de Datos String, como se observa a continuación TINYTEXT 256 bytes , TEXT 65.535 bytes 64kb, MEDIUMTEXT 16.777.215 bytes 16 MB, LONGTEXT 4294967295 bytes 4GB.

Al declarar la variable que contendrá el resultado String en el Stored Procedure la declaro de Tipo TEXT y me permite como se los especifique anteriormente hasta 5424 caracteres, pero si la declaro de tipo MEDIUMTEXT o LONGTEXT, sigue mostrando el mismo resultado NULL.

Cualquier Ayuda será bien recibida. Mil Gracias
  #2 (permalink)  
Antiguo 19/02/2013, 08:38
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: Problema al declarar Variable de Tipo String en Stored Procedure

Hola elpropiopato23,

La primera pregunta es: ¿Usas CONCAT para concatenar la variable?

Si es así, revisa que ninguna iteración del ciclo WHILE retorne NULL, si concatenas NULL usando CONCAT, el resultado será NULL.

Chequea el resultado de las siguientes sentencias:

Código MySQL:
Ver original
  1. SELECT CONCAT('USANDO', SPACE(1), 'CONCAT', SPACE(1), 'CON', SPACE(1), 'MySQL'); -- USANDO CONCAT CON MySQL
  2. SELECT CONCAT('USANDO', SPACE(1), 'CONCAT', SPACE(1), NULL, SPACE(1), 'MySQL'); -- NULL

Espero te sea útil.
  #3 (permalink)  
Antiguo 19/02/2013, 09:15
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema al declarar Variable de Tipo String en Stored Procedure

Hola Wichiquito muchas gracias por tu aporte, ya veo el por que del resultado, pero me parece algo estraño porque mira como se me genera el string desde el principio

INSERT INTO tabla.tareastemporal(idtareastemporal, idgrade, iduser, idgroup, idsubject, idnivel, weekacademic)
VALUES (NULL, 6,42693761,11,2,8,18); (NULL, 6,42693761,11,2,8,21); (NULL, 6,42693761,11,2,8,21);......(NULL, 6,42693761,11,2,8,18);

no hay problema hasta la cantidad de caracteres que mencione antes (5424), pero después de esa cantidad ya pone problema colocando ese null.

Lo que veo es que el NULL no es tanto el problema sino depronto que no haya registros, sería lo yo que entendería para tu explicación.

De todas maneras mil gracias por tu aporte.
  #4 (permalink)  
Antiguo 19/02/2013, 09:39
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problema al declarar Variable de Tipo String en Stored Procedure

Hola elpropiopato23:

Coincido con wchiquito acerca de que más que un problema con la longitud de tu cadena, el problema es que de alguna manera en el ciclo WHILE estás concatenando una cadena vacía.

sería conveniente que nos pusieras el código de tu SP para ver de qué forma puedes identificar qué puede estar ocurriendo.

Saludos
Leo.
  #5 (permalink)  
Antiguo 19/02/2013, 10:05
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: Problema al declarar Variable de Tipo String en Stored Procedure

Cita:
Lo que veo es que el NULL no es tanto el problema sino depronto que no haya registros, sería lo yo que entendería para tu explicación.
El NULL es catastrófico con cualquier operación de concatenación o matemática, porque hace NULL cualquier valor.
Esto implica que si estás combinando contenidos de campos, y al menos uno de ellos es NULL, se transforma en NULL. Por ello para realizar esa tarea debes usar IFNULL() o bien incluir como condición de los campos que no sean NULL.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 19/02/2013, 10:19
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Problema al declarar Variable de Tipo String en Stored Procedure

Amigos Muchas Gracias tienen toda la razón con el campo NULL, al validar con el IFNULL(), se quita el problema, de verdad que cada vez aprendo mas de ustedes, mil gracias como siempre, y gracias Wichiquito por sumarse a mi grupo de colaboradores. :

Etiquetas: campos, declarar, procedure, registros, sql, stored, string, tabla, tipo, variable
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 15:49.