Ayuda con procedimiento. Simular array en text

Iniciado por Hadess_inf, 22 Abril 2010, 14:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Hadess_inf

Pues tengo este procedimiento:

Código (sql) [Seleccionar]
create procedure ee(ingreso text)
begin
declare tamanio tinyint;
declare comas tinyint;
declare elemento text;
set tamanio = length(ingreso);
set comas = instr(ingreso,',');
while comas > 0 do
set elemento = substring(ingreso,1,comas-1);
set ingreso = substring(ingreso,comas+1);
select elemento;
set comas = instr(ingreso,',');
end while;
end //


Aqui esta en ejecucion:

Código (sql) [Seleccionar]
call ee('e,a,d,g');//
+----------+
| elemento |
+----------+
| e        |
+----------+
1 row in set (0.00 sec)

+----------+
| elemento |
+----------+
| a        |
+----------+
1 row in set (0.00 sec)

+----------+
| elemento |
+----------+
| d        |
+----------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)


No muestra el ultimo caracter g.

Alquien me ayuda a solucionar el problema.
Gracias.

PD: La idea es mandar un string que representara a un array (cada elemento esta separado por una coma) .... el procedure debe separar cada elemento.

^Tifa^

No he podido ejecutar tu procedimiento (el trabajo me tiene a tope).

Pero mirandolo...sino me equivoco.. tu duda esta en esta indicacion:

SET comas = instr(ingreso,',');

Fijate que esta leyendo hasta donde vea una coma (,) y aca tu:

call ee('e,a,d,g');//

Donde termina la coma??? en la letra d  ahora.. intenta despues de la letra g colocar una coma(,) que quede asi:

call ee('e,a,d,g,');//

Y dime si funciona... no lo he probado, pero es lo unico que visualmente se me aclara un poco  :rolleyes: